Import gcl27_2.7.1-32.debian.tar.xz
authorCamm Maguire <camm@debian.org>
Sun, 5 Jul 2026 18:49:40 +0000 (14:49 -0400)
committerCamm Maguire <camm@debian.org>
Sun, 5 Jul 2026 18:49:40 +0000 (14:49 -0400)
[dgit import tarball gcl27 2.7.1-32 gcl27_2.7.1-32.debian.tar.xz]

96 files changed:
debian/README.Debian [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/control_ [new file with mode: 0644]
debian/control_27 [new file with mode: 0644]
debian/control_cvs [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/debian-autoloads.el [new file with mode: 0644]
debian/gcl-pkg.el.in [new file with mode: 0644]
debian/gcl.sh [new file with mode: 0755]
debian/gcl27.templates [new file with mode: 0644]
debian/in.gcl-clc.sh [new file with mode: 0644]
debian/in.gcl-doc.README.Debian [new file with mode: 0644]
debian/in.gcl-doc.doc-base.main [new file with mode: 0644]
debian/in.gcl-doc.doc-base.si [new file with mode: 0644]
debian/in.gcl-doc.doc-base.xgcl [new file with mode: 0644]
debian/in.gcl-doc.docs [new file with mode: 0644]
debian/in.gcl-doc.info [new file with mode: 0644]
debian/in.gcl-doc.install [new file with mode: 0644]
debian/in.gcl-tk-doc.doc-base.tk [new file with mode: 0644]
debian/in.gcl-tk-doc.info [new file with mode: 0644]
debian/in.gcl-tk-doc.install [new file with mode: 0644]
debian/in.gcl-tk.install [new file with mode: 0644]
debian/in.gcl-tk.lintian-overrides [new file with mode: 0644]
debian/in.gcl.1 [new file with mode: 0644]
debian/in.gcl.config [new file with mode: 0644]
debian/in.gcl.docs [new file with mode: 0644]
debian/in.gcl.install [new file with mode: 0644]
debian/in.gcl.lintian-overrides [new file with mode: 0644]
debian/in.gcl.manpages [new file with mode: 0644]
debian/in.gcl.postinst [new file with mode: 0644]
debian/in.gcl.postrm [new file with mode: 0644]
debian/in.gcl.templates [new file with mode: 0644]
debian/msb [new file with mode: 0644]
debian/msbe [new file with mode: 0644]
debian/old.in.gcl-doc.doc-base.main [new file with mode: 0644]
debian/patches/Version_2_7_2ore3 [new file with mode: 0644]
debian/patches/Version_2_7_2pre1 [new file with mode: 0644]
debian/patches/Version_2_7_2pre10 [new file with mode: 0644]
debian/patches/Version_2_7_2pre11 [new file with mode: 0644]
debian/patches/Version_2_7_2pre12 [new file with mode: 0644]
debian/patches/Version_2_7_2pre13 [new file with mode: 0644]
debian/patches/Version_2_7_2pre14 [new file with mode: 0644]
debian/patches/Version_2_7_2pre15 [new file with mode: 0644]
debian/patches/Version_2_7_2pre16 [new file with mode: 0644]
debian/patches/Version_2_7_2pre17 [new file with mode: 0644]
debian/patches/Version_2_7_2pre18 [new file with mode: 0644]
debian/patches/Version_2_7_2pre19 [new file with mode: 0644]
debian/patches/Version_2_7_2pre2 [new file with mode: 0644]
debian/patches/Version_2_7_2pre20 [new file with mode: 0644]
debian/patches/Version_2_7_2pre21 [new file with mode: 0644]
debian/patches/Version_2_7_2pre22 [new file with mode: 0644]
debian/patches/Version_2_7_2pre23 [new file with mode: 0644]
debian/patches/Version_2_7_2pre24 [new file with mode: 0644]
debian/patches/Version_2_7_2pre25 [new file with mode: 0644]
debian/patches/Version_2_7_2pre26 [new file with mode: 0644]
debian/patches/Version_2_7_2pre27 [new file with mode: 0644]
debian/patches/Version_2_7_2pre28 [new file with mode: 0644]
debian/patches/Version_2_7_2pre30 [new file with mode: 0644]
debian/patches/Version_2_7_2pre31 [new file with mode: 0644]
debian/patches/Version_2_7_2pre32 [new file with mode: 0644]
debian/patches/Version_2_7_2pre33 [new file with mode: 0644]
debian/patches/Version_2_7_2pre34 [new file with mode: 0644]
debian/patches/Version_2_7_2pre35 [new file with mode: 0644]
debian/patches/Version_2_7_2pre5 [new file with mode: 0644]
debian/patches/Version_2_7_2pre6 [new file with mode: 0644]
debian/patches/Version_2_7_2pre7 [new file with mode: 0644]
debian/patches/Version_2_7_2pre8 [new file with mode: 0644]
debian/patches/Version_2_7_2pre9 [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/po/POTFILES.in [new file with mode: 0644]
debian/po/ca.po [new file with mode: 0644]
debian/po/cs.po [new file with mode: 0644]
debian/po/da.po [new file with mode: 0644]
debian/po/de.po [new file with mode: 0644]
debian/po/es.po [new file with mode: 0644]
debian/po/fi.po [new file with mode: 0644]
debian/po/fr.po [new file with mode: 0644]
debian/po/gl.po [new file with mode: 0644]
debian/po/in.POTFILES.in [new file with mode: 0644]
debian/po/it.po [new file with mode: 0644]
debian/po/ja.po [new file with mode: 0644]
debian/po/nl.po [new file with mode: 0644]
debian/po/pt.po [new file with mode: 0644]
debian/po/pt_BR.po [new file with mode: 0644]
debian/po/ru.po [new file with mode: 0644]
debian/po/sv.po [new file with mode: 0644]
debian/po/templates.pot [new file with mode: 0644]
debian/po/vi.po [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/source/format [new file with mode: 0644]
debian/source/include-binaries [new file with mode: 0644]
debian/texi.awk [new file with mode: 0755]
debian/upstream/signing-key.asc [new file with mode: 0644]
debian/watch [new file with mode: 0644]
info/gcl-si.info-2 [new file with mode: 0644]

diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..8174975
--- /dev/null
@@ -0,0 +1,28 @@
+The Debian package gcl
+----------------------
+
+GCL is one of the oldest free common lisp systems still in use. Several
+production systems have used it for over a decade.  The common lisp
+standard in effect when GCL was first released is known as "Common Lisp,
+the Language" (CLtL1) after a book by Steele of the same name providing
+this specification.  Subsequently, a much expanded standard was adopted by
+the American National Standards Institute (ANSI), which is still
+considered the definitive common lisp language specification to this day. 
+
+Debian GCL now installs both the small 'traditional' lisp image
+designed to conform to a pre-ANSI Lisp standard, and an experimental
+ANSI image.  Please note that ANSI support in GCL is still
+preliminary.  On an ansi-test suite written by a GCL developer, GCL
+fails on a little under 3 percent of the tests.  Details can be found
+in /usr/share/doc/gcl/test_results.gz.
+
+To toggle the use of the ANSI image, set the environment variable
+GCL_ANSI to any non-empty string.
+
+New in 2.6.2
+------------
+
+Please see the RELEASE-2.6.2.html file for release note information,
+regression testing, and sample benchmarks.
+
+ -- Camm Maguire <camm@enhanced.com>, Wed Dec 14 18:55:19 2005
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..5b85e84
--- /dev/null
@@ -0,0 +1,4706 @@
+gcl27 (2.7.1-32) unstable; urgency=medium
+
+  * Version_2_7_2pre35
+  * Bug fix: "FTBFS: ERROR: See make.log.", thanks to Santiago Vila
+    (Closes: #1140970).
+
+ -- Camm Maguire <camm@debian.org>  Sun, 05 Jul 2026 14:49:40 -0400
+
+gcl27 (2.7.1-31) unstable; urgency=medium
+
+  * Version_2_7_2pre34
+
+ -- Camm Maguire <camm@debian.org>  Sat, 27 Jun 2026 13:32:41 -0400
+
+gcl27 (2.7.1-30) unstable; urgency=medium
+
+  * Version_2_7_2pre33
+
+ -- Camm Maguire <camm@debian.org>  Sat, 27 Jun 2026 08:08:41 -0400
+
+gcl27 (2.7.1-29) unstable; urgency=medium
+
+  * Version_2_7_2pre32
+
+ -- Camm Maguire <camm@debian.org>  Wed, 24 Jun 2026 13:31:07 -0400
+
+gcl27 (2.7.1-28) unstable; urgency=medium
+
+  * Version_2_7_2pre31
+
+ -- Camm Maguire <camm@debian.org>  Tue, 23 Jun 2026 18:35:51 -0400
+
+gcl27 (2.7.1-27) unstable; urgency=medium
+
+  * Version_2_7_2pre30
+
+ -- Camm Maguire <camm@debian.org>  Tue, 23 Jun 2026 14:54:29 -0400
+
+gcl27 (2.7.1-26) unstable; urgency=medium
+
+  * Version_2_7_2pre28
+
+ -- Camm Maguire <camm@debian.org>  Mon, 15 Jun 2026 21:26:01 -0400
+
+gcl27 (2.7.1-25) unstable; urgency=medium
+
+  * Version_2_7_2pre27
+
+ -- Camm Maguire <camm@debian.org>  Mon, 15 Jun 2026 16:32:01 -0400
+
+gcl27 (2.7.1-24) unstable; urgency=medium
+
+  * Version_2_7_2pre26
+
+ -- Camm Maguire <camm@debian.org>  Wed, 27 May 2026 13:56:49 -0400
+
+gcl27 (2.7.1-23) unstable; urgency=medium
+
+  * Version_2_7_2pre25
+
+ -- Camm Maguire <camm@debian.org>  Wed, 27 May 2026 11:42:57 -0400
+
+gcl27 (2.7.1-22) unstable; urgency=medium
+
+  * Version_2_7_2pre24
+
+ -- Camm Maguire <camm@debian.org>  Fri, 22 May 2026 11:28:34 -0400
+
+gcl27 (2.7.1-21) unstable; urgency=high
+
+  * Version_2_7_2pre23
+  * Bug fix: "FTBFS on loong64: Killed after 3 days of &quot;Tick&quot;",
+    thanks to Sebastian Ramacher (Closes: #1135720).
+
+ -- Camm Maguire <camm@debian.org>  Sat, 16 May 2026 08:55:17 -0400
+
+gcl27 (2.7.1-20) unstable; urgency=medium
+
+  * Version_2_7_2pre20
+
+ -- Camm Maguire <camm@debian.org>  Thu, 14 May 2026 07:46:39 -0400
+
+gcl27 (2.7.1-19) unstable; urgency=medium
+
+  * Version_2_7_2pre20
+  * Bug fix: "FTBFS with make --shuffle=reverse: make[1]: ***
+    [Makefile:1044: all] Error 2 shuffle=reverse", thanks to Lucas
+    Nussbaum (Closes: #1105309).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 13 May 2026 08:09:13 -0400
+
+gcl27 (2.7.1-18) unstable; urgency=medium
+
+  * Version_2_7_2pre17
+
+ -- Camm Maguire <camm@debian.org>  Thu, 23 Apr 2026 08:50:18 -0400
+
+gcl27 (2.7.1-17) unstable; urgency=medium
+
+  * Version_2_7_2pre16
+
+ -- Camm Maguire <camm@debian.org>  Tue, 21 Apr 2026 08:06:06 -0400
+
+gcl27 (2.7.1-16) unstable; urgency=medium
+
+  * Version_2_7_2pre15
+
+ -- Camm Maguire <camm@debian.org>  Mon, 13 Apr 2026 13:20:04 -0400
+
+gcl27 (2.7.1-15) unstable; urgency=medium
+
+  * Version_2_7_2pre14
+
+ -- Camm Maguire <camm@debian.org>  Thu, 19 Mar 2026 17:11:00 -0400
+
+gcl27 (2.7.1-14) unstable; urgency=medium
+
+  * Version_2_7_2pre13
+
+ -- Camm Maguire <camm@debian.org>  Sat, 14 Mar 2026 09:00:11 -0400
+
+gcl27 (2.7.1-13) unstable; urgency=medium
+
+  * Version_2_7_2pre12
+
+ -- Camm Maguire <camm@debian.org>  Wed, 04 Mar 2026 07:04:09 -0500
+
+gcl27 (2.7.1-12) unstable; urgency=medium
+
+  * Version_2_7_2pre11
+  * Bug fix: "FTBFS with glibc 2.43 due to ISO C23 const return types",
+    thanks to Aurelien Jarno (Closes: #1128546).
+  * Bug fix: "Update/add debconf template translation [INTL:ca]", thanks
+    to Carles Pina i Estany (Closes: #1118704).
+  * Bug fix: "[INTL:sv] Swedish strings for gcl27 debconf", thanks to
+    Martin Bagge / brother (Closes: #1122744).
+  * Bug fix: "[INTL:es] Spanish translation of gcl27 debconf template",
+    thanks to Camaleón (Closes: #1108096).
+  * Bug fix: "FTBFS: SIMPLE-ERROR: SAVE-EXEC is unable to save to file
+    &quot;saved_acl2.c&quot;, because its directory does not exist.",
+    thanks to Santiago Vila (Closes: #1128663).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 25 Feb 2026 08:23:26 -0500
+
+gcl27 (2.7.1-11) unstable; urgency=medium
+
+  * Version_2_7_2pre10
+
+ -- Camm Maguire <camm@debian.org>  Sun, 22 Feb 2026 11:52:14 -0500
+
+gcl27 (2.7.1-10) unstable; urgency=medium
+
+  * Version_2_7_2pre9
+
+ -- Camm Maguire <camm@debian.org>  Thu, 19 Feb 2026 17:21:25 -0500
+
+gcl27 (2.7.1-9) unstable; urgency=medium
+
+  * Version_2_7_2pre8
+
+ -- Camm Maguire <camm@debian.org>  Thu, 19 Feb 2026 16:06:23 -0500
+
+gcl27 (2.7.1-8) unstable; urgency=medium
+
+  * Bug fix: "FTBFS: /tmp/gazonk_6005_0.c:21:63: error: implicit
+    declaration of function &#39;__builtin_c23_va_start&#39;; did you mean
+    &#39;__builtin_ms_va_start&#39;? [-Wimplicit-function-declaration]",
+    thanks to Santiago Vila (Closes: #1114119).
+  * Version_2_7_2pre7
+
+ -- Camm Maguire <camm@debian.org>  Sun, 21 Sep 2025 14:06:45 -0400
+
+gcl27 (2.7.1-7) unstable; urgency=medium
+
+  * Version_2_7_2pre6
+  * Bug fix: "[INTL:nl] Dutch debconf templates translation", thanks to Frans Spiesschaert (Closes: #1106482).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 29 May 2025 19:11:18 -0400
+
+gcl27 (2.7.1-6) unstable; urgency=medium
+
+  * Version_2_7_2pre5
+
+ -- Camm Maguire <camm@debian.org>  Wed, 14 May 2025 02:58:40 -0400
+
+gcl27 (2.7.1-5) unstable; urgency=medium
+
+  * Version_2_7_2pre4
+  * Bug fix: "[INTL:pt] Portuguese translation - debconf messages", thanks
+    to Américo Monteiro (Closes: #1104887).
+  * Bug fix: "[INTL:de] updated German debconf translation", thanks to
+    Helge Kreutzmann (Closes: #1104918).
+
+ -- Camm Maguire <camm@debian.org>  Sat, 10 May 2025 19:27:15 -0400
+
+gcl27 (2.7.1-4) unstable; urgency=medium
+
+  * Version_2_7_2ore3
+
+ -- Camm Maguire <camm@debian.org>  Sat, 03 May 2025 09:21:20 -0400
+
+gcl27 (2.7.1-3) unstable; urgency=medium
+
+  * Version_2_7_2ore2
+
+ -- Camm Maguire <camm@debian.org>  Tue, 22 Apr 2025 20:39:18 -0400
+
+gcl27 (2.7.1-2) unstable; urgency=medium
+
+  * Version_2_7_2ore1
+
+ -- Camm Maguire <camm@debian.org>  Fri, 11 Apr 2025 20:30:34 -0400
+
+gcl27 (2.7.1-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Camm Maguire <camm@debian.org>  Thu, 10 Apr 2025 21:39:17 -0400
+
+gcl27 (2.7.0-36) unstable; urgency=medium
+
+  * Version_2_7_0pre39
+
+ -- Camm Maguire <camm@debian.org>  Mon, 24 Mar 2025 16:30:46 -0400
+
+gcl27 (2.7.0-35) unstable; urgency=medium
+
+  * Version_2_7_0pre38
+  * Bug fix: "ftbfs with GCC-15", thanks to Matthias Klose (Closes:
+    #1096686).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 06 Mar 2025 10:54:11 -0500
+
+gcl27 (2.7.0-34) unstable; urgency=medium
+
+  * Version_2_7_0pre37
+  * Bug fix: "outdated debconf version constraint; inhibits support for
+    debconf-2.0/cdebconf", thanks to Gioele Barabucci (Closes: #1096166).
+
+ -- Camm Maguire <camm@debian.org>  Tue, 18 Feb 2025 12:50:30 -0500
+
+gcl27 (2.7.0-33) unstable; urgency=medium
+
+  * Version_2_7_0pre36
+
+ -- Camm Maguire <camm@debian.org>  Sat, 08 Feb 2025 15:29:48 -0500
+
+gcl27 (2.7.0-32) unstable; urgency=medium
+
+  * Version_2_7_0pre35
+
+ -- Camm Maguire <camm@debian.org>  Sun, 02 Feb 2025 12:00:42 -0500
+
+gcl27 (2.7.0-31) unstable; urgency=medium
+
+  * Version_2_7_0pre34
+
+ -- Camm Maguire <camm@debian.org>  Fri, 17 Jan 2025 18:42:15 -0500
+
+gcl27 (2.7.0-30) unstable; urgency=medium
+
+  * Version_2_7_0pre33
+
+ -- Camm Maguire <camm@debian.org>  Fri, 27 Dec 2024 13:21:13 -0500
+
+gcl27 (2.7.0-29) unstable; urgency=medium
+
+  * Version_2_7_0pre32
+
+ -- Camm Maguire <camm@debian.org>  Mon, 09 Dec 2024 10:00:39 -0500
+
+gcl27 (2.7.0-28) unstable; urgency=medium
+
+  * Version_2_7_0pre31
+
+ -- Camm Maguire <camm@debian.org>  Wed, 04 Dec 2024 13:25:14 -0500
+
+gcl27 (2.7.0-27) unstable; urgency=medium
+
+  * Version_2_7_0pre30
+
+ -- Camm Maguire <camm@debian.org>  Wed, 04 Dec 2024 07:48:31 -0500
+
+gcl27 (2.7.0-26) unstable; urgency=medium
+
+  * Version_2_7_0pre29
+
+ -- Camm Maguire <camm@debian.org>  Sat, 23 Nov 2024 11:33:30 -0500
+
+gcl27 (2.7.0-25) unstable; urgency=medium
+
+  * Bug fix: "needs rebuild against dh-elpa &gt;=2.1.5", thanks to
+    spwhitton@spwhitton.name</a>; (Closes: #1077103).
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Jul 2024 12:07:24 -0400
+
+gcl27 (2.7.0-24) unstable; urgency=medium
+
+  * Version_2_7_0pre27
+
+ -- Camm Maguire <camm@debian.org>  Fri, 19 Jul 2024 15:04:27 -0400
+
+gcl27 (2.7.0-23) unstable; urgency=medium
+
+  * Version_2_7_0pre26
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Apr 2024 22:13:09 -0400
+
+gcl27 (2.7.0-22) unstable; urgency=medium
+
+  * Version_2_7_0pre25
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Apr 2024 07:55:48 -0400
+
+gcl27 (2.7.0-21) unstable; urgency=high
+
+  * Version_2_7_0pre24
+  * Bug fix: "recent libc6-dev change causes XDR support to be dropped",
+    thanks to Aurelien Jarno (Closes: #1065207).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 15 Mar 2024 20:00:19 -0400
+
+gcl27 (2.7.0-20) unstable; urgency=medium
+
+  * Version_2_7_0pre23
+
+ -- Camm Maguire <camm@debian.org>  Thu, 29 Feb 2024 06:51:25 -0500
+
+gcl27 (2.7.0-19) unstable; urgency=medium
+
+  * Version_2_7_0pre22
+
+ -- Camm Maguire <camm@debian.org>  Wed, 28 Feb 2024 13:35:45 -0500
+
+gcl27 (2.7.0-18) unstable; urgency=medium
+
+  * Version_2_7_0pre21
+
+ -- Camm Maguire <camm@debian.org>  Sat, 24 Feb 2024 08:40:29 -0500
+
+gcl27 (2.7.0-17) unstable; urgency=medium
+
+  * Version_2_7_0pre20
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Feb 2024 12:23:51 -0500
+
+gcl27 (2.7.0-16) unstable; urgency=medium
+
+  * Version_2_7_0pre19
+
+ -- Camm Maguire <camm@debian.org>  Thu, 22 Feb 2024 22:03:20 -0500
+
+gcl27 (2.7.0-15) unstable; urgency=medium
+
+  * Version_2_7_0pre18
+
+ -- Camm Maguire <camm@debian.org>  Thu, 22 Feb 2024 15:00:44 -0500
+
+gcl27 (2.7.0-14) unstable; urgency=medium
+
+  * Version_2_7_0pre17
+
+ -- Camm Maguire <camm@debian.org>  Wed, 21 Feb 2024 08:03:46 -0500
+
+gcl27 (2.7.0-13) unstable; urgency=medium
+
+  * Version_2_7_0pre16
+
+ -- Camm Maguire <camm@debian.org>  Wed, 21 Feb 2024 00:17:54 -0500
+
+gcl27 (2.7.0-12) unstable; urgency=medium
+
+  * Version_2_7_0pre15
+
+ -- Camm Maguire <camm@debian.org>  Mon, 19 Feb 2024 19:08:05 -0500
+
+gcl27 (2.7.0-11) unstable; urgency=medium
+
+  * Version_2_7_0pre14
+
+ -- Camm Maguire <camm@debian.org>  Mon, 19 Feb 2024 11:04:51 -0500
+
+gcl27 (2.7.0-10) unstable; urgency=medium
+
+  * Version_2_7_0pre13
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Jan 2024 20:17:32 -0500
+
+gcl27 (2.7.0-9) unstable; urgency=medium
+
+  * Version_2_7_0pre12
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Jan 2024 18:09:15 -0500
+
+gcl27 (2.7.0-8) unstable; urgency=medium
+
+  * Version_2_7_0pre11
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Jan 2024 10:36:24 -0500
+
+gcl27 (2.7.0-7) unstable; urgency=medium
+
+  * Version_2_7_0pre10
+
+ -- Camm Maguire <camm@debian.org>  Sat, 27 Jan 2024 12:35:03 -0500
+
+gcl27 (2.7.0-6) unstable; urgency=medium
+
+  * Version_2_7_0pre9
+
+ -- Camm Maguire <camm@debian.org>  Thu, 21 Dec 2023 15:02:31 -0500
+
+gcl27 (2.7.0-5) unstable; urgency=medium
+
+  * Version_2_7_0pre8
+
+ -- Camm Maguire <camm@debian.org>  Thu, 21 Dec 2023 13:08:00 -0500
+
+gcl27 (2.7.0-4) unstable; urgency=medium
+
+  * Version_2_7_0pre7
+
+ -- Camm Maguire <camm@debian.org>  Thu, 21 Dec 2023 09:37:49 -0500
+
+gcl27 (2.7.0-3) unstable; urgency=medium
+
+  * Version_2_7_0pre5
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Dec 2023 19:43:39 -0500
+
+gcl27 (2.7.0-2) unstable; urgency=medium
+
+  * Version_2_7_0pre4
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Dec 2023 16:01:04 -0500
+
+gcl27 (2.7.0-1) unstable; urgency=medium
+
+  * Version_2_7_0pre3
+
+ -- Camm Maguire <camm@debian.org>  Thu, 14 Dec 2023 16:20:45 -0500
+
+gcl (2.6.13-5) unstable; urgency=medium
+
+  * Version_2_6_14pre4
+
+ -- Camm Maguire <camm@debian.org>  Sun, 25 Dec 2022 07:14:33 -0500
+
+gcl (2.6.13-4) unstable; urgency=medium
+
+  * Version_2_6_14pre3
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Dec 2022 11:34:35 -0500
+
+gcl (2.6.13-3) unstable; urgency=medium
+
+  * Version_2_6_14pre2
+
+ -- Camm Maguire <camm@debian.org>  Thu, 22 Dec 2022 19:09:24 -0500
+
+gcl (2.6.13-2) unstable; urgency=medium
+
+  * Version_2_6_14pre1
+
+ -- Camm Maguire <camm@debian.org>  Wed, 21 Dec 2022 14:40:21 -0500
+
+gcl (2.6.13-1) unstable; urgency=medium
+
+  * New Upstream Release
+
+ -- Camm Maguire <camm@debian.org>  Tue, 20 Dec 2022 10:35:44 -0500
+
+gcl (2.6.12-131) unstable; urgency=medium
+
+  * Version_2.6.13pre131
+
+ -- Camm Maguire <camm@debian.org>  Sat, 17 Dec 2022 12:15:58 -0500
+
+gcl (2.6.12-130) unstable; urgency=medium
+
+  * Version_2.6.13pre130
+
+ -- Camm Maguire <camm@debian.org>  Fri, 16 Dec 2022 12:41:29 -0500
+
+gcl (2.6.12-129) unstable; urgency=medium
+
+  * Version_2.6.13pre129
+
+ -- Camm Maguire <camm@debian.org>  Sun, 13 Nov 2022 07:55:14 -0500
+
+gcl (2.6.12-128) unstable; urgency=medium
+
+  * Version_2.6.13pre128
+
+ -- Camm Maguire <camm@debian.org>  Sat, 12 Nov 2022 11:02:31 -0500
+
+gcl (2.6.12-126) unstable; urgency=medium
+
+  * Version_2.6.13pre126
+
+ -- Camm Maguire <camm@debian.org>  Tue, 08 Nov 2022 19:43:41 -0500
+
+gcl (2.6.12-125) unstable; urgency=medium
+
+  * Version_2.6.13pre125
+
+ -- Camm Maguire <camm@debian.org>  Tue, 08 Nov 2022 15:33:25 -0500
+
+gcl (2.6.12-124) unstable; urgency=medium
+
+  * Version_2.6.13pre124
+
+ -- Camm Maguire <camm@debian.org>  Thu, 11 Aug 2022 13:16:42 -0400
+
+gcl (2.6.12-123) unstable; urgency=medium
+
+  * Version_2.6.13pre123
+
+ -- Camm Maguire <camm@debian.org>  Mon, 08 Aug 2022 13:00:55 -0400
+
+gcl (2.6.12-122) unstable; urgency=medium
+
+  * Version_2.6.13pre122
+
+ -- Camm Maguire <camm@debian.org>  Mon, 08 Aug 2022 11:50:22 -0400
+
+gcl (2.6.12-121) unstable; urgency=medium
+
+  * Version_2.6.13pre121
+
+ -- Camm Maguire <camm@debian.org>  Mon, 08 Aug 2022 11:45:30 -0400
+
+gcl (2.6.12-120) unstable; urgency=medium
+
+  * Version_2.6.13pre120
+
+ -- Camm Maguire <camm@debian.org>  Sun, 07 Aug 2022 12:26:10 -0400
+
+gcl (2.6.12-119) unstable; urgency=medium
+
+  * Version_2.6.13pre119
+
+ -- Camm Maguire <camm@debian.org>  Sun, 31 Jul 2022 12:00:02 -0400
+
+gcl (2.6.12-118) unstable; urgency=medium
+
+  * Bug fix: "emacs dependency should be &quot;emacs | emacsen&quot;",
+    thanks to Adrian Bunk (Closes: #1006617).
+  * Bug fix: "Please remove dependency on install-info", thanks to
+    hille42@web.de</a>; (Closes: #1013691).
+  * Version_2.6.13pre118
+
+ -- Camm Maguire <camm@debian.org>  Tue, 12 Jul 2022 17:17:09 -0400
+
+gcl (2.6.12-117) unstable; urgency=medium
+
+  * Version_2.6.13pre114
+
+ -- Camm Maguire <camm@debian.org>  Sat, 25 Dec 2021 11:38:16 -0500
+
+gcl (2.6.12-116) unstable; urgency=medium
+
+  * Version_2.6.13pre113
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 Dec 2021 19:52:18 +0000
+
+gcl (2.6.12-115) unstable; urgency=medium
+
+  * Version_2.6.13pre112
+
+ -- Camm Maguire <camm@debian.org>  Fri, 17 Dec 2021 16:08:45 +0000
+
+gcl (2.6.12-114) unstable; urgency=medium
+
+  * Version_2.6.13pre111
+
+ -- Camm Maguire <camm@debian.org>  Thu, 16 Dec 2021 11:35:04 +0000
+
+gcl (2.6.12-113) unstable; urgency=medium
+
+  * Version_2.6.13pre110
+
+ -- Camm Maguire <camm@debian.org>  Thu, 16 Dec 2021 11:35:04 +0000
+
+gcl (2.6.12-112) unstable; urgency=medium
+
+  * Version_2.6.13pre109
+
+ -- Camm Maguire <camm@debian.org>  Wed, 15 Dec 2021 19:39:42 +0000
+
+gcl (2.6.12-111) unstable; urgency=medium
+
+  * Version_2.6.13pre108
+
+ -- Camm Maguire <camm@debian.org>  Thu, 11 Nov 2021 17:10:43 +0000
+
+gcl (2.6.12-110) unstable; urgency=medium
+
+  * Version_2.6.13pre107
+
+ -- Camm Maguire <camm@debian.org>  Thu, 11 Nov 2021 01:34:07 +0000
+
+gcl (2.6.12-109) unstable; urgency=medium
+
+  * Version_2.6.13pre106
+
+ -- Camm Maguire <camm@debian.org>  Wed, 10 Nov 2021 18:57:21 +0000
+
+gcl (2.6.12-108) unstable; urgency=medium
+
+  * Version_2.6.13pre105
+
+ -- Camm Maguire <camm@debian.org>  Tue, 09 Nov 2021 18:22:58 +0000
+
+gcl (2.6.12-107) unstable; urgency=medium
+
+  * Version_2.6.13pre103
+
+ -- Camm Maguire <camm@debian.org>  Tue, 09 Nov 2021 10:10:19 +0000
+
+gcl (2.6.12-106) unstable; urgency=medium
+
+  * Version_2.6.13pre102
+
+ -- Camm Maguire <camm@debian.org>  Thu, 04 Nov 2021 14:33:53 +0000
+
+gcl (2.6.12-105) unstable; urgency=medium
+
+  * Version_2.6.13pre101
+  * Bug fix: "fails to start with glibc 2.33", thanks to Andreas Kloeckner
+    (Closes: #995323).
+
+ -- Camm Maguire <camm@debian.org>  Sun, 10 Oct 2021 13:18:39 +0000
+
+gcl (2.6.12-104) unstable; urgency=medium
+
+  * Version_2.6.13pre100
+  * standardize cstack start address on 32bit arm
+
+ -- Camm Maguire <camm@debian.org>  Sun, 10 Oct 2021 12:44:51 +0000
+
+gcl (2.6.12-103) unstable; urgency=medium
+
+  * Bug fix: "Fails to install in unstable", thanks to Samuel Thibault
+    (Closes: #993480).
+
+ -- Camm Maguire <camm@debian.org>  Sat, 04 Sep 2021 19:23:26 +0000
+
+gcl (2.6.12-102) unstable; urgency=medium
+
+  * Version_2.6.13pre99
+  * Bug fix: "describe fails because gcl-si.info does not exist", thanks
+    to Leo Butler (Closes: #980003).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 29 Jan 2021 19:08:05 +0000
+
+gcl (2.6.12-101) unstable; urgency=medium
+
+  * Version_2.6.13pre98
+
+ -- Camm Maguire <camm@debian.org>  Sun, 17 Jan 2021 16:25:34 +0000
+
+gcl (2.6.12-100) unstable; urgency=medium
+
+  * Version_2.6.13pre97
+
+ -- Camm Maguire <camm@debian.org>  Fri, 04 Dec 2020 14:51:41 +0000
+
+gcl (2.6.12-99) unstable; urgency=medium
+
+  * Version_2.6.13pre95
+
+ -- Camm Maguire <camm@debian.org>  Sat, 28 Nov 2020 15:50:42 +0000
+
+gcl (2.6.12-98) unstable; urgency=medium
+
+  * Version_2.6.13pre94
+
+ -- Camm Maguire <camm@debian.org>  Tue, 29 Sep 2020 18:29:10 +0000
+
+gcl (2.6.12-97) unstable; urgency=medium
+
+  * Bug fix: "Removal of obsolete debhelper compat 5 and 6 in bookworm",
+    thanks to Niels Thykier (Closes: #965543).
+  * Version_2.6.13pre93
+
+ -- Camm Maguire <camm@debian.org>  Sat, 29 Aug 2020 16:23:07 +0000
+
+gcl (2.6.12-96) unstable; urgency=high
+
+  * Version_2.6.13pre92: Work around armhf strip bug producing undefined
+    instruction in .plt
+
+ -- Camm Maguire <camm@debian.org>  Sun, 23 Aug 2020 17:53:14 +0000
+
+gcl (2.6.12-95) unstable; urgency=high
+
+  * Version_2_6_13pre90
+  * build under GCL_MEM_MULTIPLE=0.1
+  * Bug fix: "FTBFS: Unrecoverable error: Segmentation violation..",
+    thanks to Lucas Nussbaum (Closes: #952334).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 01 May 2020 12:55:02 +0000
+
+gcl (2.6.12-94) unstable; urgency=medium
+
+  * re-release to overcome hopefully transient buildd failure
+
+ -- Camm Maguire <camm@debian.org>  Mon, 24 Feb 2020 20:02:52 +0000
+
+gcl (2.6.12-93) unstable; urgency=medium
+
+  * Version_2_6_13pre90
+
+ -- Camm Maguire <camm@debian.org>  Fri, 21 Feb 2020 19:06:56 +0000
+
+gcl (2.6.12-92) unstable; urgency=medium
+
+  * Version_2_6_13pre89
+
+ -- Camm Maguire <camm@debian.org>  Mon, 30 Dec 2019 15:46:22 +0000
+
+gcl (2.6.12-91) unstable; urgency=medium
+
+  * Version_2_6_13pre88
+
+ -- Camm Maguire <camm@debian.org>  Wed, 18 Dec 2019 20:14:09 +0000
+
+gcl (2.6.12-90) unstable; urgency=medium
+
+  * Version_2_6_13pre87
+  * latest standards
+
+ -- Camm Maguire <camm@debian.org>  Sun, 08 Dec 2019 19:27:24 +0000
+
+gcl (2.6.12-89) unstable; urgency=medium
+
+  * Bug fix: "gcl - FTBFS on ppc64el - invalid relocation type 31", thanks
+    to thierry.fauck@fr.ibm.com</a>; (Closes: #942312).
+  * Bug fix: "FTBFS on ppc64el", thanks to Ivo De Decker (Closes:
+    #944651).
+
+ -- Camm Maguire <camm@debian.org>  Sat, 07 Dec 2019 23:27:53 +0000
+
+gcl (2.6.12-88) unstable; urgency=medium
+
+  * Source only upload
+
+ -- Camm Maguire <camm@debian.org>  Fri, 11 Oct 2019 19:18:44 +0000
+
+gcl (2.6.12-87) unstable; urgency=medium
+
+  * Version_2_6_13pre84
+
+ -- Camm Maguire <camm@debian.org>  Sat, 06 Apr 2019 13:03:21 +0000
+
+gcl (2.6.12-86) unstable; urgency=medium
+
+  * Version_2_6_13pre83
+
+ -- Camm Maguire <camm@debian.org>  Tue, 02 Apr 2019 19:57:15 +0000
+
+gcl (2.6.12-85) unstable; urgency=medium
+
+  * Version_2_6_13pre82
+
+ -- Camm Maguire <camm@debian.org>  Thu, 28 Mar 2019 18:48:55 +0000
+
+gcl (2.6.12-84) unstable; urgency=medium
+
+  * Version_2_6_13pre80
+
+ -- Camm Maguire <camm@debian.org>  Thu, 21 Mar 2019 18:59:40 +0000
+
+gcl (2.6.12-83) unstable; urgency=high
+
+  * Version_2_6_13pre79
+  * Fix acl2 arm builds (Closes: #919477).
+
+ -- Camm Maguire <camm@debian.org>  Tue, 05 Feb 2019 21:54:42 +0000
+
+gcl (2.6.12-82) unstable; urgency=high
+
+  * Version_2_6_13pre74
+
+ -- Camm Maguire <camm@debian.org>  Sat, 02 Feb 2019 17:40:20 +0000
+
+gcl (2.6.12-81) unstable; urgency=high
+
+  * Version_2_6_13pre72
+  * Fix to ppc64el for acl2 FTBFS bug
+
+ -- Camm Maguire <camm@debian.org>  Mon, 21 Jan 2019 16:40:36 +0000
+
+gcl (2.6.12-80) unstable; urgency=medium
+
+  * Version_2_6_13pre71
+  * Bug fix: "FTBFS on hppa - segmentation fault assembling gbc.s", thanks
+    to John David Anglin (Closes: #912071).
+
+ -- Camm Maguire <camm@debian.org>  Tue, 30 Oct 2018 17:20:43 +0000
+
+gcl (2.6.12-79) unstable; urgency=medium
+
+  * Version_2_6_13pre70
+
+ -- Camm Maguire <camm@debian.org>  Mon, 29 Oct 2018 16:52:17 +0000
+
+gcl (2.6.12-78) unstable; urgency=medium
+
+  * rebuild against latest compilers and tools
+  * Version_2_6_13pre69
+
+ -- Camm Maguire <camm@debian.org>  Thu, 11 Oct 2018 16:40:48 +0000
+
+gcl (2.6.12-77) unstable; urgency=medium
+
+  * Version_2_6_13pre68
+  * Bug fix: "GCL fails to load .o files it generates", thanks to Gong-Yi
+    Liao (Closes: #902475).  Add support for R_X86_64_PLT32 relocs.
+
+ -- Camm Maguire <camm@debian.org>  Tue, 24 Jul 2018 20:06:45 +0000
+
+gcl (2.6.12-76) unstable; urgency=medium
+
+  * Version_2_6_13pre67
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Mar 2018 19:25:22 +0000
+
+gcl (2.6.12-75) unstable; urgency=medium
+
+  * Version_2_6_13pre65
+
+ -- Camm Maguire <camm@debian.org>  Wed, 21 Mar 2018 20:28:08 +0000
+
+gcl (2.6.12-74) unstable; urgency=medium
+
+  * Version_2_6_13pre63
+
+ -- Camm Maguire <camm@debian.org>  Sat, 17 Mar 2018 11:56:05 +0000
+
+gcl (2.6.12-73) unstable; urgency=medium
+
+  * Version_2_6_13pre62
+
+ -- Camm Maguire <camm@debian.org>  Wed, 14 Mar 2018 15:38:43 +0000
+
+gcl (2.6.12-72) unstable; urgency=medium
+
+  * Version_2_6_13pre61
+
+ -- Camm Maguire <camm@debian.org>  Tue, 13 Mar 2018 15:32:44 +0000
+
+gcl (2.6.12-71) unstable; urgency=medium
+
+  * Version_2_6_13pre60
+
+ -- Camm Maguire <camm@debian.org>  Mon, 12 Mar 2018 19:44:47 +0000
+
+gcl (2.6.12-70) unstable; urgency=medium
+
+  * Version_2_6_13pre59
+
+ -- Camm Maguire <camm@debian.org>  Mon, 12 Mar 2018 16:19:00 +0000
+
+gcl (2.6.12-69) unstable; urgency=medium
+
+  * Version_2_6_13pre58
+
+ -- Camm Maguire <camm@debian.org>  Fri, 09 Mar 2018 17:10:51 +0000
+
+gcl (2.6.12-68) unstable; urgency=medium
+
+  * Version_2_6_13pre57
+
+ -- Camm Maguire <camm@debian.org>  Sun, 04 Mar 2018 13:21:00 +0000
+
+gcl (2.6.12-67) unstable; urgency=medium
+
+  * Version_2_6_13pre55
+
+ -- Camm Maguire <camm@debian.org>  Sat, 03 Mar 2018 14:27:51 +0000
+
+gcl (2.6.12-66) unstable; urgency=medium
+
+  * Version_2_6_13pre54
+
+ -- Camm Maguire <camm@debian.org>  Fri, 02 Mar 2018 21:19:03 +0000
+
+gcl (2.6.12-65) unstable; urgency=medium
+
+  * Version_2_6_13pre52
+  * Bug fix: "FTBFS on hurd-i386", thanks to svante.signell@gmail.com</a>;
+    (Closes: #802593).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Feb 2018 15:55:23 +0000
+
+gcl (2.6.12-64) unstable; urgency=medium
+
+  * list_order.24
+
+ -- Camm Maguire <camm@debian.org>  Sun, 04 Feb 2018 13:26:27 +0000
+
+gcl (2.6.12-63) unstable; urgency=medium
+
+  * list_order.23
+
+ -- Camm Maguire <camm@debian.org>  Thu, 01 Feb 2018 18:36:29 +0000
+
+gcl (2.6.12-62) unstable; urgency=medium
+
+  * list_order.22
+
+ -- Camm Maguire <camm@debian.org>  Thu, 01 Feb 2018 01:05:10 +0000
+
+gcl (2.6.12-61) unstable; urgency=medium
+
+  * list_order.21
+
+ -- Camm Maguire <camm@debian.org>  Tue, 30 Jan 2018 21:13:13 +0000
+
+gcl (2.6.12-60) unstable; urgency=medium
+
+  * list_order.19
+
+ -- Camm Maguire <camm@debian.org>  Tue, 23 Jan 2018 18:11:59 +0000
+
+gcl (2.6.12-59) unstable; urgency=medium
+
+  * list_order.16
+
+ -- Camm Maguire <camm@debian.org>  Fri, 12 Jan 2018 03:25:08 +0000
+
+gcl (2.6.12-58) unstable; urgency=medium
+
+  * list_order.14
+
+ -- Camm Maguire <camm@debian.org>  Mon, 18 Sep 2017 15:45:10 +0000
+
+gcl (2.6.12-57) unstable; urgency=medium
+
+  * list_order.13
+
+ -- Camm Maguire <camm@debian.org>  Fri, 25 Aug 2017 13:44:10 +0000
+
+gcl (2.6.12-56) unstable; urgency=medium
+
+  * list_order.12
+
+ -- Camm Maguire <camm@debian.org>  Thu, 24 Aug 2017 19:12:50 +0000
+
+gcl (2.6.12-55) unstable; urgency=medium
+
+  * disable gprof on aarch64
+  * Bug fix: "gcl FTBFS on arm64: Unrecoverable error: Segmentation
+    violation..", thanks to Adrian Bunk (Closes: #873052).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 24 Aug 2017 16:37:07 +0000
+
+gcl (2.6.12-54) unstable; urgency=medium
+
+  * list_order.11
+
+ -- Camm Maguire <camm@debian.org>  Wed, 23 Aug 2017 22:19:14 +0000
+
+gcl (2.6.12-53) unstable; urgency=medium
+
+  * list_order.9
+
+ -- Camm Maguire <camm@debian.org>  Sun, 18 Jun 2017 18:32:30 +0000
+
+gcl (2.6.12-52) unstable; urgency=medium
+
+  * list_order.8
+
+ -- Camm Maguire <camm@debian.org>  Thu, 15 Jun 2017 18:04:41 +0000
+
+gcl (2.6.12-51) unstable; urgency=medium
+
+  * list_order.7
+
+ -- Camm Maguire <camm@debian.org>  Wed, 14 Jun 2017 18:30:46 +0000
+
+gcl (2.6.12-50) unstable; urgency=medium
+
+  * list_order.6
+
+ -- Camm Maguire <camm@debian.org>  Tue, 13 Jun 2017 22:38:52 +0000
+
+gcl (2.6.12-49) unstable; urgency=medium
+
+  * list_order.5
+
+ -- Camm Maguire <camm@debian.org>  Thu, 08 Jun 2017 17:21:01 +0000
+
+gcl (2.6.12-48) unstable; urgency=medium
+
+  * list_order.1
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 May 2017 01:42:29 +0000
+
+gcl (2.6.12-47) unstable; urgency=high
+
+  * pathnames1.13
+
+ -- Camm Maguire <camm@debian.org>  Tue, 22 Nov 2016 04:53:35 +0000
+
+gcl (2.6.12-46) unstable; urgency=high
+
+  * pathnames1.12
+  * Bug fix: "maintainer script(s) do not start on #!", thanks to
+    treinen@debian.org</a>; (Closes: #843303).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 18 Nov 2016 18:27:53 +0000
+
+gcl (2.6.12-45) unstable; urgency=high
+
+  * pathnames1.11
+
+ -- Camm Maguire <camm@debian.org>  Mon, 31 Oct 2016 22:57:27 +0000
+
+gcl (2.6.12-44) unstable; urgency=high
+
+  * pathnames1.9
+
+ -- Camm Maguire <camm@debian.org>  Fri, 28 Oct 2016 17:04:38 +0000
+
+gcl (2.6.12-43) unstable; urgency=medium
+
+  * pathnames1.7
+
+ -- Camm Maguire <camm@debian.org>  Thu, 27 Oct 2016 03:46:32 +0000
+
+gcl (2.6.12-42) unstable; urgency=medium
+
+  * pathnames1.6
+  * Bug fix: "FTBFS with bindnow and PIE enabled", thanks to Balint Reczey
+    (Closes: #837481).
+  * Bug fix: "FTBFS with compilers that default to -fPIE (patch
+    attached)", thanks to Adam Conrad (Closes: #822820).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 26 Oct 2016 23:04:57 +0000
+
+gcl (2.6.12-41) unstable; urgency=medium
+
+  * pathnames1.4, kfreebsd fix
+
+ -- Camm Maguire <camm@debian.org>  Fri, 14 Oct 2016 01:17:18 +0000
+
+gcl (2.6.12-40) unstable; urgency=medium
+
+  * pathnames1.2
+  * Bug fix: "popen arguments not quoted causes trouble and security
+    issues", thanks to axel (Closes: #802203).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 12 Oct 2016 18:09:26 +0000
+
+gcl (2.6.12-39) unstable; urgency=medium
+
+  * pathnames1.1
+  * ansi-test clean target
+
+ -- Camm Maguire <camm@debian.org>  Wed, 12 Oct 2016 01:32:05 +0000
+
+gcl (2.6.12-38) unstable; urgency=medium
+
+  * Version_2_6_13pre50
+
+ -- Camm Maguire <camm@debian.org>  Tue, 04 Oct 2016 19:45:38 +0000
+
+gcl (2.6.12-37) unstable; urgency=medium
+
+  * Version_2_6_13pre49
+
+ -- Camm Maguire <camm@debian.org>  Mon, 03 Oct 2016 14:54:09 +0000
+
+gcl (2.6.12-36) unstable; urgency=medium
+
+  * Version_2_6_13pre48
+
+ -- Camm Maguire <camm@debian.org>  Sat, 01 Oct 2016 12:10:25 +0000
+
+gcl (2.6.12-35) unstable; urgency=medium
+
+  * Version_2_6_13pre47
+
+ -- Camm Maguire <camm@debian.org>  Fri, 30 Sep 2016 21:21:43 +0000
+
+gcl (2.6.12-34) unstable; urgency=medium
+
+  * Version_2_6_13pre45
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Sep 2016 19:42:37 +0000
+
+gcl (2.6.12-33) unstable; urgency=medium
+
+  * Version_2_6_13pre43
+
+ -- Camm Maguire <camm@debian.org>  Tue, 03 May 2016 16:17:03 +0000
+
+gcl (2.6.12-32) unstable; urgency=medium
+
+  * Version_2_6_13pre40
+  * Bug fix: "[INTL:pt_BR] Brazilian Portuguese debconf templates
+    translation", thanks to Adriano Rafael Gomes (Closes: #811523).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Apr 2016 15:18:35 +0000
+
+gcl (2.6.12-31) unstable; urgency=medium
+
+  * Version_2_6_13pre39
+
+ -- Camm Maguire <camm@debian.org>  Mon, 11 Apr 2016 00:41:11 +0000
+
+gcl (2.6.12-30) unstable; urgency=medium
+
+  * Version_2_6_13pre38
+
+ -- Camm Maguire <camm@debian.org>  Wed, 06 Apr 2016 00:20:15 +0000
+
+gcl (2.6.12-29) unstable; urgency=medium
+
+  * Version_2_6_13pre35; support latest binutils
+  * Bug fix: "gcl ftbfs on amd64 and i386 with binutils from
+    experimental", thanks to Matthias Klose (Closes: #803214).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 29 Oct 2015 15:20:27 +0000
+
+gcl (2.6.12-28) unstable; urgency=medium
+
+  * Version_2_6_13pre35; restore hppa build
+
+ -- Camm Maguire <camm@debian.org>  Tue, 27 Oct 2015 20:00:46 +0000
+
+gcl (2.6.12-27) unstable; urgency=medium
+
+  * Version_2_6_13pre34; mips64 relocs; stack saving tail-recursive equal.
+
+ -- Camm Maguire <camm@debian.org>  Tue, 27 Oct 2015 16:35:06 +0000
+
+gcl (2.6.12-26) unstable; urgency=medium
+
+  * Version_2_6_13pre32
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Oct 2015 00:03:34 +0000
+
+gcl (2.6.12-25) unstable; urgency=medium
+
+  * Version_2_6_13pre31, kfreebsd and mips64 FTBFS fix
+
+ -- Camm Maguire <camm@debian.org>  Fri, 16 Oct 2015 15:03:03 +0000
+
+gcl (2.6.12-24) unstable; urgency=medium
+
+  * Version_2_6_13pre30
+
+ -- Camm Maguire <camm@debian.org>  Fri, 16 Oct 2015 02:44:23 +0000
+
+gcl (2.6.12-23) unstable; urgency=medium
+
+  * Version_2_6_13pre29
+
+ -- Camm Maguire <camm@debian.org>  Thu, 15 Oct 2015 18:09:59 +0000
+
+gcl (2.6.12-22) unstable; urgency=medium
+
+  * Version_2_6_13pre27
+
+ -- Camm Maguire <camm@debian.org>  Tue, 13 Oct 2015 14:38:53 +0000
+
+gcl (2.6.12-21) unstable; urgency=medium
+
+  * Version_2_6_13pre26
+
+ -- Camm Maguire <camm@debian.org>  Wed, 07 Oct 2015 15:14:27 +0000
+
+gcl (2.6.12-20) unstable; urgency=medium
+
+  * Version_2_6_13pre25
+
+ -- Camm Maguire <camm@debian.org>  Thu, 01 Oct 2015 15:16:14 +0000
+
+gcl (2.6.12-19) unstable; urgency=medium
+
+  * Use-dpkg-buidflags-opt-levels-in-debian-rules, -O3 has bug in 5.2.1
+  * Version_2_6_13pre24
+
+ -- Camm Maguire <camm@debian.org>  Wed, 30 Sep 2015 15:45:20 +0000
+
+gcl (2.6.12-18) unstable; urgency=medium
+
+  * Version_2_6_13pre22
+
+ -- Camm Maguire <camm@debian.org>  Tue, 29 Sep 2015 16:51:03 +0000
+
+gcl (2.6.12-17) unstable; urgency=medium
+
+  * Version_2_6_13pre20
+
+ -- Camm Maguire <camm@debian.org>  Sat, 26 Sep 2015 10:34:23 -0400
+
+gcl (2.6.12-16) unstable; urgency=medium
+
+  * Version_2_6_13pre19
+
+ -- Camm Maguire <camm@debian.org>  Fri, 25 Sep 2015 18:39:52 -0400
+
+gcl (2.6.12-15) unstable; urgency=medium
+
+  * Version_2_6_13pre18
+
+ -- Camm Maguire <camm@debian.org>  Fri, 25 Sep 2015 15:08:50 +0000
+
+gcl (2.6.12-14) unstable; urgency=medium
+
+  * Version_2_6_13pre17
+
+ -- Camm Maguire <camm@debian.org>  Thu, 28 May 2015 03:37:47 +0000
+
+gcl (2.6.12-13) unstable; urgency=medium
+
+  * Version_2_6_13pre16
+
+ -- Camm Maguire <camm@debian.org>  Fri, 15 May 2015 18:09:38 +0000
+
+gcl (2.6.12-12) unstable; urgency=medium
+
+  * Version_2_6_13pre13
+
+ -- Camm Maguire <camm@debian.org>  Fri, 01 May 2015 11:08:46 -0400
+
+gcl (2.6.12-11) unstable; urgency=medium
+
+  * Version_2_6_13pre12
+
+ -- Camm Maguire <camm@debian.org>  Thu, 30 Apr 2015 12:49:16 -0400
+
+gcl (2.6.12-10) unstable; urgency=medium
+
+  * rebuild in clean sid environment
+
+ -- Camm Maguire <camm@debian.org>  Mon, 27 Apr 2015 15:34:15 -0400
+
+gcl (2.6.12-9) unstable; urgency=medium
+
+  * Version_2_6_13pre8b
+  * Bug fix: "ftbfs with GCC-5", thanks to Matthias Klose (Closes:
+    #777866).
+
+ -- Camm Maguire <camm@debian.org>  Mon, 27 Apr 2015 12:32:49 -0400
+
+gcl (2.6.12-8) unstable; urgency=medium
+
+  * Version_2_6_13pre7
+
+ -- Camm Maguire <camm@debian.org>  Fri, 24 Apr 2015 13:38:30 -0400
+
+gcl (2.6.12-7) unstable; urgency=medium
+
+  * Version_2_6_13pre6
+
+ -- Camm Maguire <camm@debian.org>  Thu, 23 Apr 2015 13:43:45 -0400
+
+gcl (2.6.12-6) unstable; urgency=medium
+
+  * Version_2_6_13pre5
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 Apr 2015 17:14:16 -0400
+
+gcl (2.6.12-5) unstable; urgency=medium
+
+  * Version_2_6_13pre4
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 Apr 2015 10:25:36 -0400
+
+gcl (2.6.12-4) unstable; urgency=medium
+
+  * Version_2_6_13pre3a
+
+ -- Camm Maguire <camm@debian.org>  Mon, 20 Apr 2015 13:26:36 -0400
+
+gcl (2.6.12-3) unstable; urgency=medium
+
+  * Version_2_6_13pre2
+
+ -- Camm Maguire <camm@debian.org>  Fri, 17 Apr 2015 15:50:37 -0400
+
+gcl (2.6.12-2) unstable; urgency=medium
+
+  * Version_2_6_13pre1
+
+ -- Camm Maguire <camm@debian.org>  Wed, 26 Nov 2014 11:12:46 -0500
+
+gcl (2.6.12-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Camm Maguire <camm@debian.org>  Tue, 28 Oct 2014 09:56:15 -0400
+
+gcl (2.6.11-6) unstable; urgency=medium
+
+  * 2.6.12pre5
+
+ -- Camm Maguire <camm@debian.org>  Thu, 23 Oct 2014 17:33:22 -0400
+
+gcl (2.6.11-5) unstable; urgency=medium
+
+  * 2.6.12pre4
+
+ -- Camm Maguire <camm@debian.org>  Sat, 18 Oct 2014 09:46:34 -0400
+
+gcl (2.6.11-4) unstable; urgency=medium
+
+  * 2.6.12pre3
+
+ -- Camm Maguire <camm@debian.org>  Thu, 16 Oct 2014 11:56:15 -0400
+
+gcl (2.6.11-3) unstable; urgency=medium
+
+  * 2.6.12pre2
+
+ -- Camm Maguire <camm@debian.org>  Sun, 28 Sep 2014 20:56:18 -0400
+
+gcl (2.6.11-2) unstable; urgency=medium
+
+  * 2.6.12pre1
+
+ -- Camm Maguire <camm@debian.org>  Fri, 19 Sep 2014 14:49:25 -0400
+
+gcl (2.6.11-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Camm Maguire <camm@debian.org>  Sat, 06 Sep 2014 12:28:46 -0400
+
+gcl (2.6.10-54) unstable; urgency=medium
+
+  * remove-debug-message-from-BUGGY_MAXIMUM_SSCANF_LENGTH-code
+
+ -- Camm Maguire <camm@debian.org>  Fri, 05 Sep 2014 10:35:46 -0400
+
+gcl (2.6.10-53) unstable; urgency=medium
+
+  * ppc64le-support-headers
+
+ -- Camm Maguire <camm@debian.org>  Wed, 03 Sep 2014 15:02:12 -0400
+
+gcl (2.6.10-52) unstable; urgency=medium
+
+  * accept-TMP-paths-with-types-versions
+
+ -- Camm Maguire <camm@debian.org>  Fri, 29 Aug 2014 17:51:04 -0400
+
+gcl (2.6.10-51) unstable; urgency=medium
+
+  * fix-match-function-proclaim-skew
+
+ -- Camm Maguire <camm@debian.org>  Fri, 29 Aug 2014 16:40:30 +0000
+
+gcl (2.6.10-50) unstable; urgency=medium
+
+  * trial_selinux_support
+
+ -- Camm Maguire <camm@debian.org>  Thu, 21 Aug 2014 17:29:50 +0000
+
+gcl (2.6.10-49) unstable; urgency=medium
+
+  * R_ARM_JUMP24
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Aug 2014 17:08:23 +0000
+
+gcl (2.6.10-48) unstable; urgency=medium
+
+  * try-SGC-for-aarch64
+
+ -- Camm Maguire <camm@debian.org>  Tue, 19 Aug 2014 18:35:22 +0000
+
+gcl (2.6.10-47) unstable; urgency=medium
+
+  * set-stack_guard-after-alloc-setup
+  * Bug fix: "work around build failure on AArch64", thanks to Matthias
+    Klose (Closes: #758101).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 14 Aug 2014 19:36:48 +0000
+
+gcl (2.6.10-46) unstable; urgency=medium
+
+  * R_AARCH64_LDST128_ABS_LO12_NC
+
+ -- Camm Maguire <camm@debian.org>  Wed, 13 Aug 2014 21:39:50 +0000
+
+gcl (2.6.10-45) unstable; urgency=medium
+
+  * fix sh4 CLEAR_CACHE
+
+ -- Camm Maguire <camm@debian.org>  Sun, 10 Aug 2014 20:12:03 +0000
+
+gcl (2.6.10-44) unstable; urgency=medium
+
+  * clear_protect_memory on all elf machines
+
+ -- Camm Maguire <camm@debian.org>  Sat, 09 Aug 2014 00:55:17 +0000
+
+gcl (2.6.10-43) unstable; urgency=medium
+
+  * mips uses builtin_clear_cache like mipsel
+
+ -- Camm Maguire <camm@debian.org>  Fri, 08 Aug 2014 23:42:42 +0000
+
+gcl (2.6.10-42) unstable; urgency=medium
+
+  * backport travel_push_new from master
+
+ -- Camm Maguire <camm@debian.org>  Wed, 06 Aug 2014 20:14:14 +0000
+
+gcl (2.6.10-41) unstable; urgency=medium
+
+  * protos and CFLAGS for axiom extensions
+
+ -- Camm Maguire <camm@debian.org>  Wed, 06 Aug 2014 01:54:38 +0000
+
+gcl (2.6.10-40) unstable; urgency=medium
+
+  * better solaris unexec fix
+
+ -- Camm Maguire <camm@debian.org>  Mon, 04 Aug 2014 22:00:54 +0000
+
+gcl (2.6.10-39) unstable; urgency=medium
+
+  * earlier prelink_init, phys_pages w/o malloc
+
+ -- Camm Maguire <camm@debian.org>  Mon, 04 Aug 2014 16:52:09 +0000
+
+gcl (2.6.10-38) unstable; urgency=medium
+
+  * error on overflow of array dimensions
+
+ -- Camm Maguire <camm@debian.org>  Fri, 01 Aug 2014 14:35:44 +0000
+
+gcl (2.6.10-37) unstable; urgency=medium
+
+  * FILE * casts for windows feof wrapper
+
+ -- Camm Maguire <camm@debian.org>  Thu, 31 Jul 2014 02:17:11 +0000
+
+gcl (2.6.10-36) unstable; urgency=medium
+
+  * better casts for frs_jmpbuf
+
+ -- Camm Maguire <camm@debian.org>  Wed, 30 Jul 2014 17:00:06 +0000
+
+gcl (2.6.10-35) unstable; urgency=medium
+
+  * find_sym_ptable typo fix
+
+ -- Camm Maguire <camm@debian.org>  Tue, 29 Jul 2014 18:08:57 +0000
+
+gcl (2.6.10-34) unstable; urgency=medium
+
+  * --enable-prelink configure arg; stack_chk_guard for 68k
+
+ -- Camm Maguire <camm@debian.org>  Fri, 25 Jul 2014 20:39:10 +0000
+
+gcl (2.6.10-33) unstable; urgency=medium
+
+  * hurd stack_guard, ppc64 C_GC_OFFSET
+
+ -- Camm Maguire <camm@debian.org>  Thu, 24 Jul 2014 21:46:24 +0000
+
+gcl (2.6.10-32) unstable; urgency=medium
+
+  * __stack_chk_guard fix for arm/sh4
+
+ -- Camm Maguire <camm@debian.org>  Wed, 23 Jul 2014 18:12:56 +0000
+
+gcl (2.6.10-31) unstable; urgency=medium
+
+  * dpkg-buildflags trial
+
+ -- Camm Maguire <camm@debian.org>  Tue, 22 Jul 2014 20:06:10 +0000
+
+gcl (2.6.10-30) unstable; urgency=medium
+
+  * fix offsets ppc
+
+ -- Camm Maguire <camm@debian.org>  Tue, 22 Jul 2014 17:12:27 +0000
+
+gcl (2.6.10-29) unstable; urgency=medium
+
+  * fix unexec file offsets
+
+ -- Camm Maguire <camm@debian.org>  Tue, 22 Jul 2014 15:36:45 +0000
+
+gcl (2.6.10-28) unstable; urgency=high
+
+  * enable prelink
+
+ -- Camm Maguire <camm@debian.org>  Fri, 18 Jul 2014 19:24:38 +0000
+
+gcl (2.6.10-27) unstable; urgency=high
+
+  * protect closure calls from gc
+
+ -- Camm Maguire <camm@debian.org>  Wed, 16 Jul 2014 16:15:33 +0000
+
+gcl (2.6.10-26) unstable; urgency=high
+
+  * Bug fix: "packages should not build-depend on binutils-dev", thanks to
+    Matthias Klose (Closes: #754840).  Please note that gcl has long
+    depended on binutils-dev for good reason -- happily it is no longer
+    necessary
+
+ -- Camm Maguire <camm@debian.org>  Tue, 15 Jul 2014 16:04:04 +0000
+
+gcl (2.6.10-25) unstable; urgency=high
+
+  * rebuild to get gcc fixes on i386
+
+ -- Camm Maguire <camm@debian.org>  Fri, 11 Jul 2014 03:14:45 +0000
+
+gcl (2.6.10-24) unstable; urgency=high
+
+  * try default gcc 4.9
+  * access libopcodes without link dependency via dlopen
+  * Bug fix: "please switch to emacs24", thanks to Gabriele Giacone
+    (Closes: #754012).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 09 Jul 2014 17:34:21 +0000
+
+gcl (2.6.10-23) unstable; urgency=high
+
+  * rebuild latest binutils
+
+ -- Camm Maguire <camm@debian.org>  Sat, 05 Jul 2014 23:19:27 +0000
+
+gcl (2.6.10-22) unstable; urgency=high
+
+  * gcc-4.8 on i386, 4.9 has bugs at present
+
+ -- Camm Maguire <camm@debian.org>  Fri, 04 Jul 2014 01:36:06 +0000
+
+gcl (2.6.10-21) unstable; urgency=high
+
+  * 2.6.11pre test 20
+
+ -- Camm Maguire <camm@debian.org>  Mon, 30 Jun 2014 22:43:27 +0000
+
+gcl (2.6.10-20) unstable; urgency=high
+
+  * 2.6.11pre test 19
+
+ -- Camm Maguire <camm@debian.org>  Sun, 29 Jun 2014 17:59:59 +0000
+
+gcl (2.6.10-19) unstable; urgency=high
+
+  * 2.6.11pre test 18
+
+ -- Camm Maguire <camm@debian.org>  Sun, 29 Jun 2014 16:00:07 +0000
+
+gcl (2.6.10-18) unstable; urgency=high
+
+  * 2.6.11pre test 17
+
+ -- Camm Maguire <camm@debian.org>  Sat, 28 Jun 2014 16:57:54 +0000
+
+gcl (2.6.10-17) unstable; urgency=high
+
+  * 2.6.11pre test 16
+
+ -- Camm Maguire <camm@debian.org>  Thu, 26 Jun 2014 18:06:42 +0000
+
+gcl (2.6.10-16) unstable; urgency=high
+
+  * 2.6.11pre test 15
+
+ -- Camm Maguire <camm@debian.org>  Wed, 18 Jun 2014 17:37:36 +0000
+
+gcl (2.6.10-15) unstable; urgency=high
+
+  * 2.6.11pre test 14
+
+ -- Camm Maguire <camm@debian.org>  Tue, 17 Jun 2014 00:39:35 +0000
+
+gcl (2.6.10-14) unstable; urgency=high
+
+  * 2.6.11pre test 13
+
+ -- Camm Maguire <camm@debian.org>  Sat, 14 Jun 2014 13:43:57 +0000
+
+gcl (2.6.10-13) unstable; urgency=high
+
+  * 2.6.11pre test 12
+
+ -- Camm Maguire <camm@debian.org>  Tue, 20 May 2014 16:00:22 +0000
+
+gcl (2.6.10-12) unstable; urgency=high
+
+  * 2.6.11pre test 11
+
+ -- Camm Maguire <camm@debian.org>  Fri, 16 May 2014 17:41:33 +0000
+
+gcl (2.6.10-11) unstable; urgency=high
+
+  * 2.6.11pre test 10
+
+ -- Camm Maguire <camm@debian.org>  Fri, 16 May 2014 13:18:07 +0000
+
+gcl (2.6.10-10) unstable; urgency=high
+
+  * 2.6.11pre test 9
+
+ -- Camm Maguire <camm@debian.org>  Wed, 07 May 2014 17:10:30 +0000
+
+gcl (2.6.10-9) unstable; urgency=high
+
+  * 2.6.11pre test 8
+
+ -- Camm Maguire <camm@debian.org>  Fri, 25 Apr 2014 19:53:10 +0000
+
+gcl (2.6.10-8) unstable; urgency=high
+
+  * 2.6.11pre test 7
+
+ -- Camm Maguire <camm@debian.org>  Mon, 21 Apr 2014 14:09:37 +0000
+
+gcl (2.6.10-7) unstable; urgency=high
+
+  * 2.6.11pre test 6
+
+ -- Camm Maguire <camm@debian.org>  Sat, 19 Apr 2014 17:52:17 +0000
+
+gcl (2.6.10-6) unstable; urgency=high
+
+  * 2.6.11pre test 5
+
+ -- Camm Maguire <camm@debian.org>  Fri, 18 Apr 2014 15:06:09 +0000
+
+gcl (2.6.10-5) unstable; urgency=high
+
+  * 2.6.11pre test 4
+
+ -- Camm Maguire <camm@debian.org>  Tue, 15 Apr 2014 20:30:13 +0000
+
+gcl (2.6.10-4) unstable; urgency=high
+
+  * 2.6.11pre test 3
+  * Bug fix: "debian/rules uses DEB_BUILD_* macros instead of DEB_HOST_*
+    macros", thanks to Matthias Klose (Closes: #743520).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 09 Apr 2014 13:15:32 +0000
+
+gcl (2.6.10-3) unstable; urgency=high
+
+  * 2.6.11pre test 2
+
+ -- Camm Maguire <camm@debian.org>  Thu, 03 Apr 2014 14:24:23 +0000
+
+gcl (2.6.10-2) unstable; urgency=high
+
+  * 2.6.11pre test 1
+  * Bug fix: "FTBFS: gcl_readline.d:472:39: error: &#39;CPPFunction&#39;
+    undeclared (first use in this function)", thanks to David Suárez
+    (Closes: #741819).
+
+ -- Camm Maguire <camm@debian.org>  Mon, 24 Mar 2014 15:47:01 +0000
+
+gcl (2.6.10-1) unstable; urgency=high
+
+  * New upstream release
+
+ -- Camm Maguire <camm@debian.org>  Wed, 13 Nov 2013 18:39:19 +0000
+
+gcl (2.6.9-17) unstable; urgency=high
+
+  * 2.6.10pre test 17
+
+ -- Camm Maguire <camm@debian.org>  Mon, 11 Nov 2013 19:41:45 +0000
+
+gcl (2.6.9-16) unstable; urgency=high
+
+  * 2.6.10pre test 16
+  * Bug fix: "gcl 2.6.7+dfsga-20 needs 1 GB disk space on amd64", thanks
+    to Edi Meier (Closes: #714507).
+  * Bug fix: "[INTL:ja] New Japanese translation", thanks to victory
+    (Closes: #718925).
+
+ -- Camm Maguire <camm@debian.org>  Sat, 09 Nov 2013 13:34:32 +0000
+
+gcl (2.6.9-15) unstable; urgency=high
+
+  * 2.6.10pre test 15
+
+ -- Camm Maguire <camm@debian.org>  Sat, 02 Nov 2013 22:21:16 +0000
+
+gcl (2.6.9-14) unstable; urgency=high
+
+  * 2.6.10pre test 14
+
+ -- Camm Maguire <camm@debian.org>  Wed, 23 Oct 2013 17:44:14 +0000
+
+gcl (2.6.9-13) unstable; urgency=high
+
+  * environment allocation unrandomize.h
+
+ -- Camm Maguire <camm@debian.org>  Mon, 21 Oct 2013 00:20:16 +0000
+
+gcl (2.6.9-12) unstable; urgency=high
+
+  * 2.6.10pre test 13
+
+ -- Camm Maguire <camm@debian.org>  Fri, 18 Oct 2013 14:18:17 +0000
+
+gcl (2.6.9-11) unstable; urgency=high
+
+  * 2.6.10pre test 12, s390, mingw cleanup, make_bignum bug fix
+
+ -- Camm Maguire <camm@debian.org>  Tue, 15 Oct 2013 23:32:09 +0000
+
+gcl (2.6.9-10) unstable; urgency=high
+
+  * fast-fixnums
+
+ -- Camm Maguire <camm@debian.org>  Fri, 11 Oct 2013 15:05:58 +0000
+
+gcl (2.6.9-9) unstable; urgency=high
+
+  * 2.6.10pre test 10 and 11
+
+ -- Camm Maguire <camm@debian.org>  Wed, 02 Oct 2013 19:12:36 +0000
+
+gcl (2.6.9-8) unstable; urgency=high
+
+  * 2.6.10pre test 8 and 9
+
+ -- Camm Maguire <camm@debian.org>  Tue, 01 Oct 2013 21:00:19 +0000
+
+gcl (2.6.9-7) unstable; urgency=high
+
+  * 2.6.10pre test 6 and 7
+
+ -- Camm Maguire <camm@debian.org>  Mon, 30 Sep 2013 19:34:38 +0000
+
+gcl (2.6.9-6) unstable; urgency=high
+
+  * 2.6.10pre test 5
+
+ -- Camm Maguire <camm@debian.org>  Tue, 24 Sep 2013 17:03:24 +0000
+
+gcl (2.6.9-5) unstable; urgency=high
+
+  * 2.6.10pre test 4
+
+ -- Camm Maguire <camm@debian.org>  Mon, 23 Sep 2013 19:27:36 +0000
+
+gcl (2.6.9-4) unstable; urgency=high
+
+  * 2.6.10pre test 3
+
+ -- Camm Maguire <camm@debian.org>  Mon, 23 Sep 2013 16:30:09 +0000
+
+gcl (2.6.9-3) unstable; urgency=high
+
+  * 2.6.10pre test 2
+
+ -- Camm Maguire <camm@debian.org>  Sun, 22 Sep 2013 03:27:10 +0000
+
+gcl (2.6.9-2) unstable; urgency=high
+
+  * 2.6.10pre test
+
+ -- Camm Maguire <camm@debian.org>  Sat, 21 Sep 2013 04:14:55 +0000
+
+gcl (2.6.9-1) unstable; urgency=high
+
+  * New upstream release
+
+ -- Camm Maguire <camm@debian.org>  Wed, 28 Aug 2013 16:49:18 +0000
+
+gcl (2.6.7+dfsga-40) unstable; urgency=high
+
+  * fix allocate functions
+
+ -- Camm Maguire <camm@debian.org>  Tue, 06 Aug 2013 22:36:37 +0000
+
+gcl (2.6.7+dfsga-39) unstable; urgency=high
+
+  * lower initial contiguous and relblock allocations, set *ihs-top*
+    properly on startup, protect memory->cfd.cfd_start initialization from
+    gc
+
+ -- Camm Maguire <camm@debian.org>  Mon, 05 Aug 2013 17:38:22 +0000
+
+gcl (2.6.7+dfsga-38) unstable; urgency=high
+
+  * robustify near oom handling to fix axiom compile of EXPEXPAN on mips
+
+ -- Camm Maguire <camm@debian.org>  Fri, 02 Aug 2013 16:25:16 +0000
+
+gcl (2.6.7+dfsga-37) unstable; urgency=high
+
+  * ppc64 gprof fix
+
+ -- Camm Maguire <camm@debian.org>  Fri, 26 Jul 2013 23:40:14 +0000
+
+gcl (2.6.7+dfsga-36) unstable; urgency=high
+
+  * min_pagewidth=14 on mips
+
+ -- Camm Maguire <camm@debian.org>  Fri, 26 Jul 2013 02:20:56 +0000
+
+gcl (2.6.7+dfsga-35) unstable; urgency=high
+
+  * latest gcc on all platforms, no gprof ppc64, -O1 ia64, -O0 alpha
+
+ -- Camm Maguire <camm@debian.org>  Thu, 25 Jul 2013 14:42:48 +0000
+
+gcl (2.6.7+dfsga-34) unstable; urgency=high
+
+  * sgc link_array mark fix;rb_end across save fix;more stable gcc on older arches
+
+ -- Camm Maguire <camm@debian.org>  Tue, 23 Jul 2013 17:11:23 +0000
+
+gcl (2.6.7+dfsga-33) unstable; urgency=high
+
+  * fix mark_link_array for marked sLAlink_arrayA->s.s_dbind
+
+ -- Camm Maguire <camm@debian.org>  Mon, 22 Jul 2013 19:00:43 +0000
+
+gcl (2.6.7+dfsga-32) unstable; urgency=high
+
+  * protect mark_link_array in sgc
+
+ -- Camm Maguire <camm@debian.org>  Sat, 20 Jul 2013 00:16:07 +0000
+
+gcl (2.6.7+dfsga-31) unstable; urgency=high
+
+  * properly clean link array on gc
+
+ -- Camm Maguire <camm@debian.org>  Fri, 19 Jul 2013 20:34:34 +0000
+
+gcl (2.6.7+dfsga-30) unstable; urgency=high
+
+  * fix gcl.script compiler::link, darwin compile warnings
+
+ -- Camm Maguire <camm@debian.org>  Mon, 15 Jul 2013 20:35:03 +0000
+
+gcl (2.6.7+dfsga-29) unstable; urgency=high
+
+  * fix compiler::link in presence of gcl.script
+
+ -- Camm Maguire <camm@debian.org>  Mon, 15 Jul 2013 16:23:33 +0000
+
+gcl (2.6.7+dfsga-28) unstable; urgency=high
+
+  * install unixport/gcl.script
+
+ -- Camm Maguire <camm@debian.org>  Sat, 13 Jul 2013 18:42:28 +0000
+
+gcl (2.6.7+dfsga-27) unstable; urgency=high
+
+  * workaround for ia64 and hurd brk issues
+
+ -- Camm Maguire <camm@debian.org>  Fri, 12 Jul 2013 21:44:54 +0000
+
+gcl (2.6.7+dfsga-26) unstable; urgency=high
+
+  * -- command line support, map-shared in unexec
+
+ -- Camm Maguire <camm@debian.org>  Fri, 12 Jul 2013 00:52:35 +0000
+
+gcl (2.6.7+dfsga-25) unstable; urgency=high
+
+  * alpha, mips, 68k
+
+ -- Camm Maguire <camm@debian.org>  Wed, 10 Jul 2013 18:29:37 +0000
+
+gcl (2.6.7+dfsga-24) unstable; urgency=high
+
+  * sgc and reloc fixes
+
+ -- Camm Maguire <camm@debian.org>  Mon, 08 Jul 2013 13:56:33 +0000
+
+gcl (2.6.7+dfsga-23) unstable; urgency=high
+
+  * fix for maxima on kfbsd and sparc
+
+ -- Camm Maguire <camm@debian.org>  Wed, 03 Jul 2013 19:19:16 +0000
+
+gcl (2.6.7+dfsga-22) unstable; urgency=high
+
+  * fix stack definition issues on i386
+
+ -- Camm Maguire <camm@debian.org>  Tue, 02 Jul 2013 18:27:54 +0000
+
+gcl (2.6.7+dfsga-21) unstable; urgency=high
+
+  * near out of memory robustification
+
+ -- Camm Maguire <camm@debian.org>  Tue, 02 Jul 2013 15:32:58 +0000
+
+gcl (2.6.7+dfsga-20) unstable; urgency=high
+
+  * fix 3GB workaround for gprof
+
+ -- Camm Maguire <camm@debian.org>  Fri, 21 Jun 2013 11:09:01 -0400
+
+gcl (2.6.7+dfsga-19) unstable; urgency=high
+
+  * work around 3GB personality/alloca/malloc bug
+
+ -- Camm Maguire <camm@debian.org>  Fri, 21 Jun 2013 02:46:49 +0000
+
+gcl (2.6.7+dfsga-18) unstable; urgency=high
+
+  * alpha NULL_OR_ON_C_STACK, attempt to get 32 immfix space with
+    ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT personality, clean compile with no
+    immfix
+
+ -- Camm Maguire <camm@debian.org>  Thu, 20 Jun 2013 20:24:29 +0000
+
+gcl (2.6.7+dfsga-17) unstable; urgency=high
+
+  * small optimizations, #= nil fix
+
+ -- Camm Maguire <camm@debian.org>  Wed, 19 Jun 2013 16:23:27 +0000
+
+gcl (2.6.7+dfsga-16) unstable; urgency=high
+
+  * no linker script on hurd;fix OBJ_ALIGN
+
+ -- Camm Maguire <camm@debian.org>  Thu, 13 Jun 2013 15:35:00 +0000
+
+gcl (2.6.7+dfsga-15) unstable; urgency=high
+
+  * ia64 fix
+
+ -- Camm Maguire <camm@debian.org>  Thu, 13 Jun 2013 02:38:47 +0000
+
+gcl (2.6.7+dfsga-14) unstable; urgency=high
+
+  * eliminate maxpage/dbegin, restore windows and macosx builds
+
+ -- Camm Maguire <camm@debian.org>  Wed, 12 Jun 2013 21:42:29 +0000
+
+gcl (2.6.7+dfsga-13) unstable; urgency=low
+
+  * ia64/hurd/s390 and SGC
+
+ -- Camm Maguire <camm@debian.org>  Sun, 09 Jun 2013 00:23:51 +0000
+
+gcl (2.6.7+dfsga-12) unstable; urgency=low
+
+  * ia64/hurd/s390
+
+ -- Camm Maguire <camm@debian.org>  Sat, 08 Jun 2013 15:24:46 +0000
+
+gcl (2.6.7+dfsga-11) unstable; urgency=high
+
+  * 2.6.9 test
+
+ -- Camm Maguire <camm@debian.org>  Fri, 07 Jun 2013 21:46:41 +0000
+
+gcl (2.6.7+dfsga-10) unstable; urgency=high
+
+  * output mips make bug text to stderr
+
+ -- Camm Maguire <camm@debian.org>  Sat, 25 May 2013 12:24:35 +0000
+
+gcl (2.6.7+dfsga-9) unstable; urgency=high
+
+  * mips make bug workaround
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 May 2013 14:23:43 +0000
+
+gcl (2.6.7+dfsga-8) unstable; urgency=high
+
+  * revert doubled default maxpage
+  * export *read-eval*
+
+ -- Camm Maguire <camm@debian.org>  Tue, 21 May 2013 14:42:05 +0000
+
+gcl (2.6.7+dfsga-7) unstable; urgency=high
+
+  * export ansi symbols
+
+ -- Camm Maguire <camm@debian.org>  Sat, 11 May 2013 21:36:56 +0000
+
+gcl (2.6.7+dfsga-6) unstable; urgency=high
+
+  * fast hash-equal in compiler
+
+ -- Camm Maguire <camm@debian.org>  Sat, 11 May 2013 19:11:42 +0000
+
+gcl (2.6.7+dfsga-5) unstable; urgency=high
+
+  * Bug fix: "FTBFS: cp: cannot stat
+    &#39;debian/tmp/usr/share/info/gcl-si.info&#39;: No such file or
+    directory", thanks to Lucas Nussbaum (Closes: #707490).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 10 May 2013 18:09:14 +0000
+
+gcl (2.6.7+dfsga-4) unstable; urgency=high
+
+  * sgc-on fix with latest gcc
+
+ -- Camm Maguire <camm@debian.org>  Tue, 23 Apr 2013 18:45:11 +0000
+
+gcl (2.6.7+dfsga-3) unstable; urgency=high
+
+  * hash depth bug fix
+  * new s390 reloc
+
+ -- Camm Maguire <camm@debian.org>  Thu, 24 Jan 2013 19:46:30 +0000
+
+gcl (2.6.7+dfsga-2) unstable; urgency=high
+  
+  * more arm relocs supported;check default timezone dynamically;follow
+    bash ~ semantics in user-homedir-pathname
+
+ -- Camm Maguire <camm@debian.org>  Mon, 21 Jan 2013 18:41:06 +0000
+
+gcl (2.6.7+dfsga-1) unstable; urgency=high
+
+  * Acknowledge Non-maintainer upload. 
+  (thanks David Prévot <taffit@debian.org>) 
+  * Remove unused and non DFSG-compliant gmp3/gmp.* from source. 
+  (Closes: #695721)
+  * Show translated debconf templates, thanks to Denis Barbier for the
+    analysis and the proposed fixes. (Closes: #691946)
+  * trim excess digits from printed floats
+
+ -- Camm Maguire <camm@debian.org>  Tue, 15 Jan 2013 20:46:25 +0000
+
+gcl (2.6.7-108) unstable; urgency=high
+
+  * Depend on emacs23 | emacsen to allow wheezy propagation
+
+ -- Camm Maguire <camm@debian.org>  Mon, 08 Oct 2012 18:08:36 +0000
+
+gcl (2.6.7-107) unstable; urgency=high
+
+  * mode 644 on ucf newfile
+
+ -- Camm Maguire <camm@debian.org>  Wed, 03 Oct 2012 20:38:43 +0000
+
+gcl (2.6.7-106) unstable; urgency=high
+
+  * Bug fix: "modifies conffiles (policy 10.7.3): /etc/default/gcl",
+    thanks to Andreas Beckmann (Closes: #688201).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 03 Oct 2012 16:52:10 +0000
+
+gcl (2.6.7-105) unstable; urgency=high
+
+  * restore #DEBHELPER# to postinst and postrm scripts
+
+ -- Camm Maguire <camm@debian.org>  Mon, 01 Oct 2012 17:31:43 +0000
+
+gcl (2.6.7-104) unstable; urgency=high
+
+  * Bug fix: "modifies conffiles (policy 10.7.3): /etc/default/gcl",
+    thanks to Andreas Beckmann (Closes: #688201).
+
+ -- Camm Maguire <camm@debian.org>  Mon, 01 Oct 2012 15:32:52 +0000
+
+gcl (2.6.7-103) unstable; urgency=high
+
+  * sfaslelf.c: FIX_HIDDEN_SYMBOLS
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 Aug 2012 15:13:12 +0000
+
+gcl (2.6.7-102) unstable; urgency=high
+
+  * Fix hash key distribution bug, bitvector equal bug
+  * distinguish car position in equal-hash of lists
+
+ -- Camm Maguire <camm@debian.org>  Mon, 20 Aug 2012 17:33:26 +0000
+
+gcl (2.6.7-101) unstable; urgency=high
+
+  * add alpha, ppc, ppc64, and ia64 to __builtin__clear_cache exception
+    list as per gcc maintainers
+  * lintian cleanups
+
+ -- Camm Maguire <camm@debian.org>  Sat, 05 May 2012 23:18:56 +0000
+
+gcl (2.6.7-100) unstable; urgency=high
+
+  * nil case keylist support
+  * Bug fix: "[INTL:da] Danish translation of the debconf templates gcl",
+    thanks to Joe Dalton (Closes: #666528).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 20 Apr 2012 02:25:26 +0000
+
+gcl (2.6.7-99) unstable; urgency=low
+
+  * case default error checking
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Mar 2012 14:14:44 +0000
+
+gcl (2.6.7-98) unstable; urgency=low
+
+  * restore traditional make-sequence,make-array, and coerce, and
+    optimize replace, as 2.6.8 compiler is still too weak re: inlines
+
+ -- Camm Maguire <camm@debian.org>  Fri, 20 Jan 2012 19:55:45 +0000
+
+gcl (2.6.7-97) unstable; urgency=low
+
+  * evade __builtin___clear_cache on hppa
+  * make-array;make-sequence;replace;coerce
+
+ -- Camm Maguire <camm@debian.org>  Fri, 20 Jan 2012 05:13:22 +0000
+
+gcl (2.6.7-96) unstable; urgency=low
+
+  * better XDR detection; no __builtin_clear_cache on sh4
+
+ -- Camm Maguire <camm@debian.org>  Wed, 18 Jan 2012 01:32:43 +0000
+
+gcl (2.6.7-95) unstable; urgency=low
+
+  * clear_cache after mprotect
+
+ -- Camm Maguire <camm@debian.org>  Tue, 17 Jan 2012 03:54:56 +0000
+
+gcl (2.6.7-94) unstable; urgency=low
+
+  * optimize unwind at O0 to workaround gcc bug; centralize on
+    __builtin__clear_cache when available;arm_thm_call reloc support
+
+ -- Camm Maguire <camm@debian.org>  Mon, 16 Jan 2012 20:10:07 +0000
+
+gcl (2.6.7-93) unstable; urgency=low
+
+  * remove C_GC_OFFSET for sparc64
+  * remove ncurses dependency for readline
+  * Bug fix: "FTBFS: dpkg-buildpackage: error: dpkg-source -b gcl-2.6.7
+    gave error exit status 2", thanks to Didier Raboud (Closes: #643131).
+  * Bug fix: "drops readline support if rebuilt", thanks to Sven Joachim
+    (Closes: #646735).
+  * lower opts on sparc64 asof gcc 4.6.1
+
+ -- Camm Maguire <camm@debian.org>  Wed, 11 Jan 2012 21:04:23 +0000
+
+gcl (2.6.7-92) unstable; urgency=low
+
+  * remove gprof on arm as mcount calls are 24/22bit -- marginally
+    accessible
+
+ -- Camm Maguire <camm@debian.org>  Sat, 07 Jan 2012 02:42:06 +0000
+
+gcl (2.6.7-91) unstable; urgency=low
+
+  * s390x reloc support
+  * lower C optimization on ia64, arm and mips for now
+
+ -- Camm Maguire <camm@debian.org>  Thu, 05 Jan 2012 17:30:01 +0000
+
+gcl (2.6.7-90) unstable; urgency=low
+
+  * libtirpc check for newest glibc
+  * read_preserving_whitespace fix
+  * armhf reloc support
+  * s390x support
+  * try C_GC_OFFSET for sparc64
+
+ -- Camm Maguire <camm@debian.org>  Wed, 04 Jan 2012 19:51:13 +0000
+
+gcl (2.6.7-89) unstable; urgency=low
+
+  * support new mips relocs
+  * lower opt to work around gcc 4.6 bug on arm
+
+ -- Camm Maguire <camm@debian.org>  Wed, 11 May 2011 20:06:04 +0000
+
+gcl (2.6.7-88) unstable; urgency=low
+
+  * Bug fix: "FTBFS: gcl_arraylib.c:4:42: error: &#39;VV&#39; undeclared
+    (first use in this function)", thanks to Lucas Nussbaum (Closes:
+    #625032).
+
+ -- Camm Maguire <camm@debian.org>  Mon, 09 May 2011 16:00:21 +0000
+
+gcl (2.6.7-87) unstable; urgency=low
+
+  * mips reloc fix;configure default dlopen fix;clean rules and makefiles
+
+ -- Camm Maguire <camm@debian.org>  Fri, 05 Nov 2010 13:29:05 +0000
+
+gcl (2.6.7-86) unstable; urgency=low
+
+  * remove binutils subdir, configure and make changes
+
+ -- Camm Maguire <camm@debian.org>  Thu, 04 Nov 2010 17:55:48 +0000
+
+gcl (2.6.7-85) unstable; urgency=low
+
+  * fix mips relocs for non-static clines
+
+ -- Camm Maguire <camm@debian.org>  Tue, 02 Nov 2010 13:56:40 +0000
+
+gcl (2.6.7-84) unstable; urgency=low
+
+  * better mips relocs, fix link on mingw32
+
+ -- Camm Maguire <camm@debian.org>  Sat, 30 Oct 2010 00:07:39 +0000
+
+gcl (2.6.7-83) unstable; urgency=low
+
+  * fix alpha stubs; fix sparc64 typo; print armhf relocs
+
+ -- Camm Maguire <camm@debian.org>  Thu, 28 Oct 2010 13:43:16 +0000
+
+gcl (2.6.7-82) unstable; urgency=low
+
+  * mips64 fixes
+
+ -- Camm Maguire <camm@debian.org>  Tue, 26 Oct 2010 18:20:04 +0000
+
+gcl (2.6.7-81) unstable; urgency=low
+
+  * sparc64;mips64
+
+ -- Camm Maguire <camm@debian.org>  Tue, 26 Oct 2010 03:33:52 +0000
+
+gcl (2.6.7-80) unstable; urgency=low
+
+  * alpha stubs; sgc mips kernel bug test; mips GPREL32 reloc
+
+ -- Camm Maguire <camm@debian.org>  Mon, 25 Oct 2010 19:52:51 +0000
+
+gcl (2.6.7-79) unstable; urgency=low
+
+  * mips ld_bind_now, disable sgc workaround mips SIGBUS bug
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Oct 2010 15:31:59 +0000
+
+gcl (2.6.7-78) unstable; urgency=low
+
+  * mips local got relocs
+
+ -- Camm Maguire <camm@debian.org>  Tue, 12 Oct 2010 17:15:35 +0000
+
+gcl (2.6.7-77) unstable; urgency=low
+
+  * workaround gcc alpha bug
+  * fix alpha reloc
+
+ -- Camm Maguire <camm@debian.org>  Fri, 01 Oct 2010 21:25:11 +0000
+
+gcl (2.6.7-76) unstable; urgency=low
+
+  * fix page_multiple usage for runtime pagesize variance and stable mipsel builds
+  * sparc64 support
+
+ -- Camm Maguire <camm@debian.org>  Fri, 01 Oct 2010 19:18:47 +0000
+
+gcl (2.6.7-75) unstable; urgency=low
+
+  * fix alpha bug
+
+ -- Camm Maguire <camm@debian.org>  Tue, 28 Sep 2010 20:23:21 +0000
+
+gcl (2.6.7-74) unstable; urgency=low
+
+  * fix alpha relocs for axiom
+
+ -- Camm Maguire <camm@debian.org>  Tue, 28 Sep 2010 16:07:38 +0000
+
+gcl (2.6.7-73) unstable; urgency=low
+
+  * sparc reloc updates
+  * fast-link fix
+
+ -- Camm Maguire <camm@debian.org>  Fri, 24 Sep 2010 19:23:16 +0000
+
+gcl (2.6.7-72) unstable; urgency=low
+
+  * remove unused symbols from gcl_cmpopt.lsp
+  * reloc updates
+  * clear gcc warning
+  * default tilde expansion to HOME env in absence of passwd
+  * configure typo fix
+
+ -- Camm Maguire <camm@debian.org>  Wed, 22 Sep 2010 19:32:52 +0000
+
+gcl (2.6.7-71) unstable; urgency=low
+
+  * print sparc64 relocs
+
+ -- Camm Maguire <camm@debian.org>  Sat, 28 Aug 2010 14:50:00 +0000
+
+gcl (2.6.7-70) unstable; urgency=low
+
+  * sparc64/m68k
+
+ -- Camm Maguire <camm@debian.org>  Fri, 27 Aug 2010 16:54:11 +0000
+
+gcl (2.6.7-69) unstable; urgency=low
+
+  * Bug fix: "non-standard gcc/g++ used for build (gcc-4.3)", thanks to
+    Matthias Klose (Closes: #594280).
+
+ -- Camm Maguire <camm@debian.org>  Thu, 26 Aug 2010 19:08:39 +0000
+
+gcl (2.6.7-68) unstable; urgency=low
+
+  * ppc/mips elf reloc fixes
+
+ -- Camm Maguire <camm@debian.org>  Mon, 23 Aug 2010 20:54:30 +0000
+
+gcl (2.6.7-67) unstable; urgency=low
+
+  * Fix compiler::link ansi combo
+
+ -- Camm Maguire <camm@debian.org>  Sat, 21 Aug 2010 02:05:37 +0000
+
+gcl (2.6.7-66) unstable; urgency=low
+
+  * ppc autobuild fix
+  * Bug fix: "FTBFS: sfasli.c:139: error: invalid initializer", thanks to
+    Lucas Nussbaum (Closes: #593037).
+  * Bug fix: "FTBFS on powerpc: Error: The function TK::GET-AUTOLOADS is
+    undefined.", thanks to Mehdi Dogguy (Closes: #593191).
+
+ -- Camm Maguire <camm@debian.org>  Fri, 20 Aug 2010 01:25:09 +0000
+
+gcl (2.6.7-65) unstable; urgency=low
+
+  * autobuilder fixes
+
+ -- Camm Maguire <camm@debian.org>  Sat, 14 Aug 2010 11:30:46 +0000
+
+gcl (2.6.7-64) unstable; urgency=low
+
+  * configure fix
+
+ -- Camm Maguire <camm@debian.org>  Fri, 13 Aug 2010 23:26:07 +0000
+
+gcl (2.6.7-63) unstable; urgency=low
+
+  * macosx support, ppc, i386 and x86_64 -- sfaslmacho.c
+  * windows/wine support -- sfaslcoff.c
+  * better custreloc support obviating my_plt -- sfaslelf.c
+  * debian default custreloc build where supported, all but ia64 and hppa
+  * fix mingw/wine path issues
+
+ -- Camm Maguire <camm@debian.org>  Fri, 13 Aug 2010 16:08:49 +0000
+
+gcl (2.6.7-62) unstable; urgency=high
+
+  * more stable sgc detection via h/tsgc.h
+  * fix plt.h bug on hppa
+  * sublis1-inline fix for acl2
+
+ -- Camm Maguire <camm@debian.org>  Mon, 26 Jul 2010 16:03:54 +0000
+
+gcl (2.6.7-61) unstable; urgency=high
+
+  * mac osx support
+  * fix undef sgc bug in cmpinclude.h
+
+ -- Camm Maguire <camm@debian.org>  Tue, 20 Jul 2010 14:50:19 +0000
+
+gcl (2.6.7-60) unstable; urgency=high
+
+  * fix sh4 support
+
+ -- Camm Maguire <camm@debian.org>  Thu, 29 Apr 2010 18:09:04 +0000
+
+gcl (2.6.7-59) unstable; urgency=high
+
+  * fix hurd support
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Apr 2010 17:12:54 +0000
+
+gcl (2.6.7-58) unstable; urgency=high
+
+  * hurd support
+  * sh4 support
+
+ -- Camm Maguire <camm@debian.org>  Fri, 23 Apr 2010 05:09:29 +0000
+
+gcl (2.6.7-57) unstable; urgency=high
+
+  * static function pointer wrapper for gcl_gmp_allocfun, stabilizing gmp
+    on hppa/ia64
+
+ -- Camm Maguire <camm@debian.org>  Mon, 12 Apr 2010 22:28:41 +0000
+
+gcl (2.6.7-56) unstable; urgency=high
+
+  * __builtin___clear_cache on arm
+  * gcc-4.3 on alpha
+
+ -- Camm Maguire <camm@debian.org>  Thu, 28 Jan 2010 00:32:16 +0000
+
+gcl (2.6.7-55) unstable; urgency=low
+
+  * SGC fix, debian override fix, xgcl update
+  * SGC fix for relocatable and contiguous gmp storage
+  * configure fix for arm and hppa
+
+ -- Camm Maguire <camm@debian.org>  Tue, 26 Jan 2010 19:43:08 +0000
+
+gcl (2.6.7-54) unstable; urgency=low
+
+  * robustify user_match, unrandomize, read-char-no-hang for sockets
+  * SA_SIGINFO for 386-linux
+  * if cmpinclude.h is not available, use *cmpinclude-string* in compiler-pass2
+
+ -- Camm Maguire <camm@debian.org>  Wed, 20 Jan 2010 19:02:28 +0000
+
+gcl (2.6.7-53) unstable; urgency=low
+
+  * revert round ratio to nearest
+
+ -- Camm Maguire <camm@debian.org>  Tue, 05 Jan 2010 03:06:59 +0000
+
+gcl (2.6.7-52) unstable; urgency=low
+
+  * SIGINFO for kfreebsd-386
+
+ -- Camm Maguire <camm@debian.org>  Mon, 04 Jan 2010 17:49:05 +0000
+
+gcl (2.6.7-51) unstable; urgency=low
+
+  * user_match exscapes once only
+
+ -- Camm Maguire <camm@debian.org>  Sun, 03 Jan 2010 05:31:20 +0000
+
+gcl (2.6.7-50) unstable; urgency=low
+
+  * gcc 4.4 warning cleanups
+
+ -- Camm Maguire <camm@debian.org>  Thu, 31 Dec 2009 20:43:39 +0000
+
+gcl (2.6.7-49) unstable; urgency=low
+
+  * Bug fix: "/bin/sh: line 6: /bin/gcl: Permission denied", thanks to
+    Nobuhiro Iwamatsu (Closes: #561554).
+
+ -- Camm Maguire <camm@debian.org>  Wed, 30 Dec 2009 23:04:39 +0000
+
+gcl (2.6.7-48) unstable; urgency=low
+
+  * round to nearest in ratio to double
+
+ -- Camm Maguire <camm@debian.org>  Wed, 16 Dec 2009 15:01:55 +0000
+
+gcl (2.6.7-47) unstable; urgency=low
+
+  * Bug fix: "configure: error: Need zlib for bfd linking", thanks to
+    Cyril Brulebois (Closes: #560761).
+  * Bug fix: "Disfunctional maintainer address", thanks to Joerg Jaspert
+    (Closes: #560752).
+
+ -- Camm Maguire <camm@debian.org>  Mon, 14 Dec 2009 19:06:45 +0000
+
+gcl (2.6.7-46) unstable; urgency=low
+
+  * support newer binutils with output_bfd element
+  * Fix 64bit interrupt bug
+  * reader error fix
+  * Ensure plt entries are not blank
+  * plt table reading fix
+  * Bug fix: "FTBFS: current binutils static libs need -lz", thanks to
+    Daniel Schepler (Closes: #521929).
+  * Bug fix: "replacing libreadline5-dev build dependency with
+    libreadline-dev", thanks to Matthias Klose (Closes: #553761).
+  * Bug fix: "crash after ctrl-C", thanks to Miroslaw Kwasniak (Closes:
+    #519903).
+  * Bug fix: "FTBFS with binutils-gold", thanks to Peter Fritzsche
+    (Closes: #554418). -ldl added to bfd linker args
+  * Bug fix: "[INTL:es] Spanish debconf template translation for gcl",
+    thanks to Francisco Javier Cuadrado (Closes: #508728).
+  * Bug fix: "[INTL:it] Italian translation", thanks to Vincenzo
+    Campanella (Closes: #560364).
+  * gcc error/warning cleanups
+  * fix plt table awk
+
+ -- Camm Maguire <camm@debian.org>  Fri, 11 Dec 2009 17:45:14 +0000
+
+gcl (2.6.7-45) unstable; urgency=high
+
+  * proper word order detection macro, fixes armel
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 01 Sep 2008 13:48:16 +0000
+
+gcl (2.6.7-44) unstable; urgency=high
+
+  * backoff on arm opts
+  * more careful handling of GCL_GPROF_START
+
+ -- Camm Maguire <camm@maguirefamily.org>  Sat, 23 Aug 2008 21:28:52 +0000
+
+gcl (2.6.7-43) unstable; urgency=low
+
+  * redo unrandomize.h to enable compilation under -O2 -- FIXME; Closes: 494153
+
+ -- Camm Maguire <camm@maguirefamily.org>  Wed, 20 Aug 2008 21:18:43 +0000
+
+gcl (2.6.7-42) unstable; urgency=low
+
+  * more div/rem symbols for alpha
+
+ -- Camm Maguire <camm@sacrifice.m.enhanced.com>  Sun, 03 Aug 2008 11:18:51 +0000
+
+gcl (2.6.7-41) unstable; urgency=low
+
+  * more div/rem symbols for arm and hppa
+
+ -- Camm Maguire <camm@sacrifice.m.enhanced.com>  Sat, 02 Aug 2008 00:36:07 +0000
+
+gcl (2.6.7-40) unstable; urgency=low
+
+  * default gcc with pic enabled on mips/mipsel
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 01 Aug 2008 13:28:00 -0400
+
+gcl (2.6.7-39) unstable; urgency=high
+
+  * gcc 4.2 for mips/mipsel for now
+  * __divdi3 et. al. symbols for ia64 and arm
+  * clean some compiler warnings
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 01 Aug 2008 12:53:07 -0400
+
+gcl (2.6.7-38) unstable; urgency=low
+
+  * No infinite unrandomization loops
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 31 Jul 2008 15:18:37 -0400
+
+gcl (2.6.7-37) unstable; urgency=low
+
+  * Non-maintainer upload to fix pending l10n issues
+  * Debconf templates and debian/control reviewed by the debian-l10n-
+    english team as part of the Smith review project. Closes: #457025
+  * [Debconf translation updates]
+    - Portuguese. Closes: #457576
+    - Czech. Closes: #457677
+    - French. Closes: #458120
+    - Finnish. Closes: #458255
+    - Galician. Closes: #458529
+    - Vietnamese. Closes: #459008
+    - Russian. Closes: #459308
+    - Dutch. Closes: #459541
+    - German. Closes: #459887
+  * [Lintian] Correct FSF address in debian/copyright
+  * [Lintian] Remove extra whitespaces at the end of
+    debian/in.gcl-doc.doc-base.tk
+  * [Lintian] Correct section in doc-base documents from Apps/Programming
+    to Programming
+  * Accept NMU
+  * Bug fix: "[INTL:sv] po-debconf file for gcl", thanks to Martin Ågren
+    (Closes: #492241).
+  * Bug fix: "gcl: FTBFS [amd64]: cannot trap sbrk", thanks to Daniel
+    Schepler (Closes: #487435).  Modified and applied personality handling
+    patch.
+  * Bug fix: "gcl: Builds broken package with gcc-4.3", thanks to Daniel
+    Schepler (Closes: #467474).  Added sincos to plttest.c
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 31 Jul 2008 15:18:15 -0400
+
+gcl (2.6.7-36) unstable; urgency=low
+
+  * statsysbfd in Debian, incoporating modules into libgcl.a for
+    compiler::link support
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 30 Nov 2007 12:03:31 -0500
+
+gcl (2.6.7-35) unstable; urgency=low
+
+  * drop gcc-3.4 on arm, Closes: #440421
+  * Depend on emacs22 | emacsen, Closes: #440190
+  * debconf translations Closes: #410683, Closes: #419736, Closes: #423706, Closes: #441408
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 23 Nov 2007 10:25:23 -0500
+
+gcl (2.6.7-34) unstable; urgency=low
+
+  * add read-byte,read-sequence,write-byte,write-sequence support
+  * fix some float parsing inaccuracies
+  * support GNU_HASH sections, Closes: #426135
+  * safety 2 for certain low level functions in gcl_listlib.lsp, CLoses:
+    #415266
+
+ -- Camm Maguire <camm@enhanced.com>  Wed,  4 Jul 2007 16:23:25 -0400
+
+gcl (2.6.7-33) unstable; urgency=low
+
+  * Fix leading underscore behavior of my_plt
+  * add sqrt to plttest.c
+  * disable-nls added to the binutils subconfigures to avoid msgfmt
+    dependency
+  * remove -lintl from powerpc-macosx.defs
+  * update to make-user-init from cvs head to support hol88, fix link on
+    mingw
+  * solaris-i386 support
+  * fix read-char-no-hang on mingw
+  * fast compile without wrap-literals
+  * sigaltstack support
+  * fix cerror
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 16 May 2007 12:45:40 -0400
+
+gcl (2.6.7-32) unstable; urgency=low
+
+  * static function pointers for hppa
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 29 Oct 2006 02:15:13 -0500
+
+gcl (2.6.7-31) unstable; urgency=low
+
+  * no C optimization on hppa, gcc 4.x on hppa
+  * update cs.po, Closes: #389211
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 27 Oct 2006 13:06:55 -0400
+
+gcl (2.6.7-30) unstable; urgency=low
+
+  * make sure *tmp-dir* is set
+  * makeinfo is optional
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 25 Oct 2006 17:37:54 -0400
+
+gcl (2.6.7-29) unstable; urgency=low
+
+  * Fix build issues on hppa and m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 21 Oct 2006 15:10:41 -0400
+
+gcl (2.6.7-28) unstable; urgency=low
+
+  * si::gettimeofday function for HOL88 build;macosx fixes
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 18 Oct 2006 13:21:26 -0400
+
+gcl (2.6.7-27) unstable; urgency=low
+
+  * unrestricted gcc for alpha
+  * more default stack space
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 17 Oct 2006 16:33:43 -0400
+
+gcl (2.6.7-26) unstable; urgency=low
+
+  * Fix large float read bug in c1constant-value
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 16 Oct 2006 12:41:03 -0400
+
+gcl (2.6.7-25) unstable; urgency=low
+
+  * build-dep on gcc3.4 where appropriate
+  * Newer standards
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Oct 2006 09:37:08 -0400
+
+gcl (2.6.7-24) unstable; urgency=low
+
+  * build-dep on gcc3.4 where appropriate
+  * Newer standards
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Oct 2006 02:22:04 -0400
+
+gcl (2.6.7-23) unstable; urgency=low
+
+  * backoff to gcc-3.4 on alpha,arm,hppa, and m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 11 Oct 2006 10:16:59 -0400
+
+gcl (2.6.7-22) unstable; urgency=low
+
+  * HAVE_SYS_SOCKIO_H for solaris
+  * autolocbfd for solaris
+  * no -Wall when no gcc
+  * no -fomit-frame-pointer on m68k
+  * no profiling on mips
+  * $(AWK) instead of awk
+  * si::stat function
+  * fix 'the boolean type coersion error
+  * no varargs on cygwin
+  * while eval macro
+  * gensym counter fixes
+  * xgcl updates
+
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 15 Sep 2006 13:48:28 -0400
+
+gcl (2.6.7-21) unstable; urgency=low
+
+  * Fix socket write error
+
+ -- Camm Maguire <camm@enhanced.com>  Wed,  6 Sep 2006 09:59:50 -0400
+
+gcl (2.6.7-20) unstable; urgency=low
+
+  * fix ia64 build
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 31 Aug 2006 15:14:18 -0400
+
+gcl (2.6.7-19) unstable; urgency=low
+
+  * xgcl upgrade
+  * parse_number from cvs head with *read-base* fixes
+  * fix object_to_string
+  * install xgcl-2/sysdef.lisp
+  * fix info dir and emacs site lisp dir installation
+  * New xgcl readme
+  * Remove bashism from debian/rules, Closes: #376806, Closes: #385176.
+  * Fix dwdoc doc-base error, Closes: #385126
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 30 Aug 2006 12:13:46 -0400
+
+gcl (2.6.7-18) unstable; urgency=low
+
+  * remove emacs build dependency
+  * synch xgcl-2 with Novak edits
+  * fix build errors
+  * Remove power of two limit to MAXPAGE;fix X lib paths
+  * configure cleanup
+  * delete-file works on directories;build xgcl the old way;latest xgcl
+    from Gordon Novak
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 23 Aug 2006 14:19:51 -0400
+
+gcl (2.6.7-17) unstable; urgency=low
+
+  * Bug fix: "gcl: [INTL:sv] Swedish debconf templates translation",
+    thanks to Daniel Nylander (Closes: #343695).
+  * Bug fix: "gcl: French debconf templates translation update", thanks to
+    Sylvain Archenault (Closes: #344629).
+  * clean xgcl-2/gmon.out
+  * cleanup latest gcc type-punning warnings
+  * defentry C proclamations and xgcl cleanup
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 26 Jun 2006 16:45:09 +0000
+
+gcl (2.6.7-16) unstable; urgency=high
+
+  * Add missing build dependencies, omit html generation to avoid non-free
+    dependencies, CLoses: #372574.
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 19 Jun 2006 14:05:59 +0000
+
+gcl (2.6.7-15) unstable; urgency=low
+
+  * Use internal gettext for bfd
+  * Restore xgcl2
+  * Set compiler::*tmp-dir* at runtime
+  * report tmp-dir setting with system-banner to enable clean -eval -
+    batch operation; fix listen on socket streams; use (abs (getpid)) in
+    tmp names for Windows
+  * fix configure unbalanced quotes
+  * support for bignums in nth et.al.
+  * Fix branch cut of atanh
+  * Fix typep on simple-arrays
+  * prevent nested free errors
+  * revert atanh branch cut change
+  * Fix function documentation wrapping by compile
+  * cond evalmacro from cvs head
+  * Fix fixnum declarations in new smallnthcdr/bignthcdr
+  * fix simple-array typep
+  * updates for lsp/sys-proclaim
+  * xgcl integration
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Jun 2006 17:52:22 +0000
+
+gcl (2.6.7-14) unstable; urgency=low
+
+  * Add mount declaration to plt.c
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 18 Dec 2005 12:56:51 +0000
+
+gcl (2.6.7-13) unstable; urgency=low
+
+  * Add feof to plttest.c for macosx
+  * plt related fixes for macosx
+  * fix configure
+  * Cleanup LEADING_UNDERSCORE case in plt.c et.al for macosx et.al.
+  * pass devices if present in compiler::get-temp-dir, fix disassemble
+    for new gazonk name pattern
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 17 Dec 2005 15:22:40 +0000
+
+gcl (2.6.7-12) unstable; urgency=low
+
+  * Fix read-char-no-hang
+  * Strip emacs warnings when finding site-lisp directory
+  * mach-o update for latest binutils
+  * Latext bfd mach-o support from Aurelien
+  * revert to locbfd default on ppc-macosx
+  * More ppc macosx fixes from Aurelien
+  * revert a few macosx changes
+  * default to void * prototype on my_sbrk for latest macosx pending
+    Aureliens #ifdef
+  * Fix plt.h parsing on macosx
+  * Fix leading_underscore detection on mac
+  * macosx name mangling fixes
+  * multi-process safe gazonk names in compiler::*tmp-dir*
+  * Add underscore-mangled setjmp calls to plttest.c for macosx
+  * Fix POTFILES.in, Closes: #336207.
+  * Update templates, Closes: #324636
+  * New French and Swedish translations, Closes: #333654, Closes: #336757.
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 14 Dec 2005 18:52:49 +0000
+
+gcl (2.6.7-11) unstable; urgency=low
+
+  * Remove gcc-3.3 for arm in debian/rules
+  * make default maxpage depend on SIZEOF_LONG and PAGEWIDTH in a sane
+    fashion
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 20 Oct 2005 00:08:37 +0000
+
+gcl (2.6.7-10) unstable; urgency=low
+
+  * Fix long-call gcc configure bug for ppc, add fdollars in 
+    identifiers on arm
+  * remove gcc restrictions on arm
+  * revert 64bit coersion (gmp_big.c, maybe_replace_big) and replace with
+    code in siLnani (main.c) to get addresses from bignums.  2.7.0 will
+    have 64bit fixnums on 64bit machines, but this should not be
+    backported to 2.6.x
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 12 Oct 2005 23:11:12 +0000
+
+gcl (2.6.7-9) unstable; urgency=low
+
+  * 64bit fixnum fasd data format fix from cvs head
+
+ -- Camm Maguire <camm@enhanced.com>  Wed,  5 Oct 2005 18:49:50 +0000
+
+gcl (2.6.7-8) unstable; urgency=low
+
+  * Fix 64bit fixnum coersion bug using code from cvs HEAD
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 30 Sep 2005 22:14:38 +0000
+
+gcl (2.6.7-7) unstable; urgency=high
+
+  * Scan .o file for init name when using dlopen
+  * Set init name using .o file instead of source file by default
+  * wrap-literals function from cvs head to allow optimizations using
+    compile or compile-file
+  * ADDR_NO_RANDOMIZE fix
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 29 Sep 2005 17:50:56 +0000
+
+gcl (2.6.7-6) unstable; urgency=high
+
+  * Build bfd snapshot locally, Closes: #318681
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 20 Sep 2005 17:53:17 +0000
+
+gcl (2.6.7-5) unstable; urgency=high
+
+  * gcc-3.3 for arm
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 15 Sep 2005 20:33:00 +0000
+
+gcl (2.6.7-4) unstable; urgency=high
+
+  * gcc 3.4 on arm to work around reserved '$' identifiers.
+  * gcl: French translation update
+  * French translation added, Closes: #325214
+  * Czech translation added, Closes: #325869
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 15 Sep 2005 13:45:11 +0000
+
+gcl (2.6.7-3) unstable; urgency=low
+
+  * static wraper for compiled_regexp for ia64
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 10 Sep 2005 11:26:37 +0000
+
+gcl (2.6.7-2) unstable; urgency=high
+
+  * rebuild against libgmp3c2, Closes: #323765
+  * 2.6.7 fixes all gcc 4.0 issues.  Closes: #323979
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 24 Aug 2005 00:44:48 +0000
+
+gcl (2.6.7-1) unstable; urgency=high
+
+  * Fix (listen) with readline on
+  * fix control-d with readline
+  * libreadline5 support for Debian
+  * Support for pre-compiled regexps and new texinfo format
+  * Reenable run-process
+  * Push function 'accept  into lisp, use select for 'listen on socket
+    streams
+  * New Upstream release version
+  * Native-reloc feature
+  * Add daemon capabilities to server sockets, document socket and
+    accept
+  * Some gcl-tk fixes
+  * Update wrapt-literals strategy to be consistent with CVS head --
+    wrap evreything but symbols and integers, don't wrap when keeping
+    the gazonk files for linking in different images, this is really a
+    compile-file operation
+  * gcltk demo cleanups
+  * Probe-file, open_stream, and the like fail on directories
+  * Resolve symlinks in truename
+  * Place prototypes for defcfun in header files
+  * Support for unique init names for compiler::link and the like
+  * libreadline5 for Debian
+  * remove _o from init-names
+  * gcc-4.0 fixups
+  * Bug fix: "gcl: depends on binutils-dev &lt;&lt;= 2.1.5-999), so
+    uninstallable in unstable", thanks to Steve Langasek (Closes:
+    #318681).  Rebuild with new release to autocompute this dep
+  * Bug fix: "gcl: Please switch to po-debconf", thanks to Lucas Wall
+    (Closes: #295930). Apply po-debconf patch
+  * Newer standards
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 11 Aug 2005 15:00:26 +0000
+
+gcl (2.6.6-1) unstable; urgency=high
+
+  * New upstream release
+  * Allow .data section to be first in executable, as on solaris.  Also
+    allow for new bfd section size semantics
+  * Don't try to write map file when not using GNU ld.  Also allow
+    compile-file to process pathnames with whitespace on Windows
+  * Fix corner case fixnum arithmetic on 64bit machines
+  * Rework gmp_wrappers semantics for older gcc
+  * Explicitly mprotect loaded code pages PROT_EXEC on x86 Linux, as FC3
+    now requires it.
+  * lisp-implementation-version is GCL
+  * Reader extension patch allowing for foo::(bar foobar) semantics
+  * a shell script variable fix in "unixport/makefile" for MSYS
+  * __MINGW32__ malloc initialisation fix in "o/alloc.c"
+  * Windows file/directory fixes in "o/unixfsys.c"
+  * MinGW32 -march in configure - removes deprecation warnings
+  * MinGW32 directory fix - "o/mingfile.c".
+  * Allow for sysconf to determine clock granularity at compile time to
+    fix time errors on the Itanium
+  * Disable SGC on macosx until the sgc/save problem can be fixed.
+  * Fix fixnum print bug on 64bit
+  * Fix nil types in room report
+  * 64bit fixes to fixnum_add and fixnum_sub
+  * Fix Mac SGC/save bug, at least in part
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 16 Jan 2005 02:28:50 +0000
+
+gcl (2.6.5-1) unstable; urgency=high
+
+  * New gmp_wrappers.{c,h} files that prevent all GBC within gmp,
+    obviating the need for gmp patches and a local gmp configure.  FIXME
+    -- extend to all gmp functions in a systematic way, and write header
+    information for future use in the compiler, making sure that plt.c
+    carries the needed gmp symbols at this point
+  * Build support for gmp_wrappers
+  * Support for gmp_wrappers in alloc_relblock/alloc_contblock;Support
+    for GCL_GPROF_START define in gprof functions
+  * dynsysgmp on by default; configure backs off to local gmp configure
+    and build automatically if needed either because gmp not present or
+    patched symbols are needed; autodetect and set the _start symbol
+    when using gprof
+  * Fix (setf (get ...) ...) return bug when interpreted
+  * Fix overwrite end of sgc_type_map bug
+  * Versioned depends on binutils-dev manually installed by Debian build
+    process
+  * New upstream release
+  * Proper binutils dependency for Debian
+  * head -1l -> head -n 1 for freebsd
+  * Cleanup gmp_wrapper code, check for in-place calls as write in one
+    step is not guaranteed in gmp according to its developers
+  * Rebuild against binutils 2.15, Closes: #266253, Closes: #263983
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 17 Aug 2004 18:22:27 +0000
+
+gcl (2.6.4-1) unstable; urgency=high
+
+  * New upstream release
+  * Make disassemble work when original system directory is gone
+  * New debian/support files for debconf image default selection support
+  * More descriptive compiled C function names for use in gprof when
+    profiling is compiled in
+  * Compiler fix for proclaimed vararg functions
+  * Allow sharp numbers to be bignums
+  * lintian fix in string-match
+  * Prototype for alloca for lint
+  * Improve gprof support
+  * Improve sgc page allocation which optimize-maximum-pages is in
+    effect and the hole is overrun
+  * Build a profiling set of images as well for Debian, toggle between
+    all four by default via debconf
+  * reset-sys-paths lisp function for moving image installation
+    directories, show profiling support in banner if present
+  * Fix typo in sys docs
+  * reset sys paths on installation
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  5 Aug 2004 22:48:56 +0000
+
+gcl (2.6.3-1) unstable; urgency=high
+
+  * Correctly parse gcc version strings in gmp3 subconfigure on arm
+  * Fix variable capture error in dotimes macro
+  * Better sed separator for LI-CC in unixport/makefile
+  * Fix segfault in string-match
+  * vs_top=sup -> (reset-top) where possible in compiler.  FIXME: a few
+    items of a different form which need to set *sup-used* too.
+  * Correct room report to show proper percentages when sgc is on
+  * Read in RELOC environment variable if set as default in debian/rules
+  * Remove local bfd libraries from libs variables as their objects are
+    incorporated into libgcl and as the source directory may not be
+    available at runtime
+  * Remove pcl/pcl_gazonk*lsp build-generated files from source
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 15 Jul 2004 14:26:44 -0400
+
+gcl (2.6.2-3) unstable; urgency=low
+
+  * Fix value stack leak in rare compiled call sequence
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 13 Jul 2004 10:17:02 -0400
+
+gcl (2.6.2-2) unstable; urgency=low
+
+  * New upstream point release
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 13 Jul 2004 10:08:53 -0400
+
+gcl (2.6.2-1) unstable; urgency=low
+
+  * gcc-3.4 support
+  * Proper isnormal default courtesy of Magnus Henoch
+  * gclclean makefile target and other small makefile changes
+  * Proper check for C stack array body address in gbc.c and sgbc.c
+  * New upstream release
+  * acconfig.h update for isnormal default
+  * Fix bug in setting elements (si::aset) of 0 rank arrays uncovered by
+    the random tester
+  * No -fomit-frame-pointer on mingw
+  * Backport minimal ansi-test patches from HEAD to enable running of
+    the random tester
+  * installed tcl/tk patch for mingw
+  * Fix banner license detection code in lsp/gcl_mislib.lsp as
+    8features* entries are now keywords
+  * o/makefile changes to work around trailing slash -I arguments gcc
+    bug on mingw
+  * Patch to mingwin.c:fix_filename to close long standing 'maxima
+    ignore-errors filename corruption' bug on mingw
+  * Check for too large rank supplied to make-array1
+  * Fix potential stack overwrite bug in quick_call_sfun/eval.c
+  * Add -mprferred-stack-boundary=8 on amd64, as constant integers used
+    in a call must be retrievable with va_arg(,fixnum)
+  * Revert preferred-stack-boundary option on amd64 as it does not play
+    well with external libraries, also eliminate -m64 to allow for user
+    settings.  Cast fixnum constant C arguments in gcl_cmploc.lsp
+    explicitly to (long) to ensure they can be extracted via
+    va_arg(,fixnum)
+  * reenable SA_SIGINFO on amd64 to restore SGC there
+  * Include elf.h in FreeBSD.h
+  * Allow for elf_abi.h in FreeBSD.h
+  * Add README.openbsd file
+  * readme.mingw updates
+  * solaris.h updates for custreloc option
+  * Close possibility of malloc failure due to intervening gbc arising
+    from the misordering of allocation calls
+  * C_GC_OFFSET is 2 on m68k-linux
+  * Add release notes, remove gcl document presumably based on dpANS for
+    now
+  * Fixup bad extern declaration of signals_handled in usig.c
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 25 Jun 2004 22:43:52 +0000
+
+gcl (2.6.1-39) unstable; urgency=high
+
+  * Fix segfault in referencing (sgc_)type_map out of bounds which can
+    occurr when C stack is below heap, as on alpha.
+  * Cleanup compiler warnings on bcmp.c bzero.c and bcopy.c
+  * Clean up compiler warning in file.d
+  * Ensure set TLDFLAGS are used in finding DBEGIN in copnfigure.in, for
+    OpenBSD
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  7 May 2004 21:50:03 +0000
+
+gcl (2.6.1-38) unstable; urgency=low
+
+  * Make *features* entries keywords -- add canonical host cpu and
+    kernel-system to *features*, disable h files specific
+    ADDITIONAL_FEATURES macro in main.c
+  * Fix merge-pathanames bug in concatenating default and supplied
+    directory lists
+  * Minor pathname and *features* fixes
+  * Fix recently introduced configure.in syntax bug
+  * Minor patches to support big gcl images -- all page integers must be
+    long ints, need stack space limits that scale with MAXPAGES at least
+    to allow free_map stack array in sgc_start.  FIXME -- right now can
+    handle situations where page numbers are ints, but npage*PAGESIZE is
+    a long, need to handle npage >MAX_INT later.  This is to support the
+    'billion cons element acl2 image' requested by a gcl user
+  * Revert winnt features and debugging aids in configure.in
+  * OpenBSD support, gcc warning cleanups for long page integers
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  3 May 2004 21:34:57 +0000
+
+gcl (2.6.1-37) unstable; urgency=high
+
+  * mprotect pages PROT_EXEC as CLEAR_CACHE step on amd64-linux
+  * Prevent recursive malloc calls for OpenBSD error reporting
+  * Push dummy 0 time for child runtime on windows to be compatible with
+    other platforms for now
+  * Make sure pages are mprotected PROT_EXEC for amd64 support
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 13 Apr 2004 21:00:22 +0000
+
+gcl (2.6.1-36) unstable; urgency=low
+
+  * Improve optimize-maximum-pages algorithm
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  6 Apr 2004 03:23:40 +0000
+
+gcl (2.6.1-35) unstable; urgency=low
+
+  * Fix sigcontext autodetection on sparc
+
+ -- Camm Maguire <camm@enhanced.com>  Sun,  4 Apr 2004 19:26:48 +0000
+
+gcl (2.6.1-34) unstable; urgency=low
+
+  * Fix GNU_LD autodetection in configure.in
+  * Eliminate C_INCLUDE_PATH from shell script wrapper
+  * Use lisp rather than 'system touch' to make empty map file in
+    compiler::link
+  * fix small bug when info is passed bad second argument
+  * Don't try to open map file if doesn't stat (macosx)
+  * Add earlier forgotten branch patch to sfaslbfd.c for macosx
+  * Backport new eval-when keyword support from 2.7 to run random tester
+  * Perhormance improvement to gcl_seqlib.lsp -- no inner loop over
+    bignums
+  * Proper contblock/relblock determination when expanding string
+    streams
+  * Proper string type determination for *link-array*
+  * .ini files depend on plt.h
+  * plttest.c cannot depend on include.h
+  * Address longstanding FIXmE in gensym, so that two strings are not
+    allocated for each gensym
+  * Fix rare infinite loop bug in array.c
+  * Import si::info into 'user
+  * , -> # as sed separator
+  * Minro warning removals and fixups
+  * Binary searches through ordered arrays of referred and changed
+    variables for dramatic compiler performance improvement in the large
+    case -- support declarations and thereby optimizations of the form
+    (declare ((vector t) foo)), etc.
+  * Better 'time macro
+  * rebuild pcl_gaz* files
+  * cleanup room report and give more space to modern large heaps
+  * room report formatting
+  * Properly gensymmed time macro
+  * Allow for white space chars in compiled filenames
+  * Autodetect and work around sbrk randomization, e.g. on Fedora 1
+  * Probe for sbrk before probing for randomized sbrk
+  * Openbsd changes -- maximize data seg resource if possible, avoid
+    mallocing error message when allocation routines fails
+  * Fix sigcontext configure tests
+  * Rename loop-finish -> sloop-finish in sloop package so that sloop
+    and ansi loop can be used simultaneously
+  * Handle arguments which are zero in LCM
+  * Fix typo in configure.in
+  * Improved dotimes macro which avoids unnecessary fixnum garbage
+    generation
+  * Backport of ignorable declaration keyword for new dotimes macro
+  * si::*OPTIMIZE-MAXIMUM-PAGES* support
+  * rebuild pcl generated lisp files
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  3 Apr 2004 19:27:18 +0000
+
+gcl (2.6.1-33) unstable; urgency=low
+
+  * Remove extraneous symbols from plt.h, autodetect and correct for
+    leading underscore in object symbols
+  * complete readline version detection commit
+  * Backport support for new eval-when keywords
+  * Autodetect GNU ld and add -Wl,-Map only when appropriate
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 10 Mar 2004 22:51:44 +0000
+
+gcl (2.6.1-32) unstable; urgency=low
+
+  * Try to automatically determine the form used for the explicitly
+    compiled in external function addresses in plt.c
+  * No need to explicitly write cr-lf on windows
+  * Autodetection of machine on FreeBSD
+  * Updated defs and h files for FreeBSD courtesy of Mark Murray
+  * Minor ifdefs needed for FreeBSD
+  * Refer to exported non-static C stub of fSmake_vector1 in plt.c
+    (needed on ia64)
+  * Readline 4.1/4.3 configure magic
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  9 Mar 2004 01:58:43 +0000
+
+gcl (2.6.1-31) unstable; urgency=low
+
+  * Adjustments to vs_top reset logic to clear (hopefully last)
+    remaining bug found by the random-tester
+  * Allow args-info-referred-vars to match replaced vars, clearing bug
+    report submitted by Matt Kauffman
+  * Rework plt code yet again to be compatible with compiler::link for
+    axiom, and mingw32
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  8 Mar 2004 12:16:46 +0000
+
+gcl (2.6.1-30) unstable; urgency=low
+
+  * Fix rsym generated symbol tables for 64 bit platforms
+  * Make sure 'unwind' in frame.c does nt go below frs_org
+  * Do not define symbols with no value, either in bfd/rsym, or in
+    plt.c.  Generates a clear and explicit error of an undefined symbol
+    when we've missed an address
+  * Define the external symbols known to be written at present in plt.c
+  * fix some more compiler errors found by the random tester -- all
+    related to proper unwinding of temporary reductions of vs_top from
+    te local supremum
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  6 Mar 2004 02:05:59 +0000
+
+gcl (2.6.1-29) unstable; urgency=low
+
+  * Remove implicit dependency on gawk, optimize plt.c a little
+
+ -- Camm Maguire <camm@enhanced.com>  Wed,  3 Mar 2004 16:08:30 +0000
+
+gcl (2.6.1-28) unstable; urgency=low
+
+  * make sure bfd fasload initializes dum.sm.sm_object1 for
+    read_fasl_vector
+  * When a tagbody contains ccb reference tags, and hence i itself
+    marked ccb, mark all the clb tags therein ccb too, as the tagbody
+    environment will be consed in c2tagbody-ccb.  FIXME -- review this
+    logic carefully
+  * fix typoe in o/sfaslbfd.c
+  * Add code to unwind redefinitions of the stack supremum in c2expr-top
+    (used in c2multiple-value-prog1 and c2multiple-value-call in
+    evaluating arguments) on non-local exit
+  * Use new temporarry variables holding lisp stack  supremum for lint
+  * Eliminate extraneous warning message when allocating fewer pages
+    than already allocated
+  * Rework internal plt symbol address capture
+  * Cleanup sfaslelf compiler warning
+
+ -- Camm Maguire <camm@enhanced.com>  Wed,  3 Mar 2004 00:27:08 +0000
+
+gcl (2.6.1-27) unstable; urgency=low
+
+  * Modify default banner slightly
+  * Homebrew plt-like mechanism for ensuring that valid internal
+    addresses exist to which undefined symbols in compiled lisp objects
+    referring to external shared libraries can be relocated
+  * Make configure demand gettext when choosing --enable-locbfd
+  * Make sure references to ldb1, a stub conventionally optimized away,
+    can be resonled when optimization is turned off
+  * completion_matches ->  rl_completion_matches in gcl_readline.d,
+    which is what is exported in the headers
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 27 Feb 2004 23:50:49 +0000
+
+gcl (2.6.1-26) unstable; urgency=low
+
+  * Rework compiler::*ld-libs*, compiler::link, and unixport/makefile to
+    accomodate mingw need for firstfile.o and lastfile.o
+  * Remove incompatible -fomit-frame-pointer when compiling with -pg
+    profiling
+  * Load sys-proclaim.lisp files forimproved linking and smaller object
+    size across the board, install same for use with compiler::link
+  * Use pathnames instead of strings in compiler::link, also in image
+    init files, for Windows
+  * small mod to unixport/makefile re filtering of firstfile and
+    lastfile
+  * Backport zero divisor error cnditions from HEAD for
+    floor,ceiling,truncate
+  * Default to debug mode on hppa to work around gcc compiler
+    optimization bugs
+  * Add missing m4 and automake files in binutils directory to enable
+    automake and autoconf here
+  * Add mach-o specific files from cvs head to local bfd tree
+  * Add bfd/po makefiles
+  * Macosx defaults in configure.in
+  * bfd make and configure file changes to handle mach-o backend
+  * *gcl-version* -> *gcl-minor-version*,*gcl-extra-version*
+  * Support for more informative banner reading features list
+  * Support for both sigbus and sigsegv in sgbc.c as is customary in .h
+    files
+  * mach-o compatible changes in sfaslbfd.c
+  * Support for new debugging section names in sfaslelf.c
+  * powerpc-macosx h and defs files from cvs head
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 25 Feb 2004 23:08:59 +0000
+
+gcl (2.6.1-25) unstable; urgency=low
+
+  * rl_putc_em a carriage return after invoking readline to ensure the
+    prompt in rl_putc_em_line is cleared.
+  * use standard sgc fault recovery element for hppa as recommended by
+    hppa kernel experts
+  * Store banner in si::*system-banner* for possible modification
+  in compatibly licensed programs
+  * exit with -1 when standard in ends in lisp debug mode
+  * Backport macosx files from cvs HEAD
+  * Document system return codes
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 13 Feb 2004 20:44:54 +0000
+
+gcl (2.6.1-24) unstable; urgency=low
+
+  * Revert unixport/makefile link order fix for windows, breaks
+    compiler::link, find another way
+  * runtime SGC fault recovery test
+  * Protect read/fread in case SGC is enabled with safe (restartable)
+    versions
+  * SGC on for arm and hppa
+  * remove fast-link workaround now fixed for windows
+  * Backport HEAD makefile changes to clean .{c,h,data} files and
+    new_decl.h, remove said from repository (generated files)
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Feb 2004 05:56:29 +0000
+
+gcl (2.6.1-23) unstable; urgency=low
+
+  * Remove calls to init-readline with new automatic readline setup
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 27 Jan 2004 20:27:20 +0000
+
+gcl (2.6.1-22) unstable; urgency=low
+
+  * Build depend on emacs21 | emacsen
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 23 Jan 2004 22:01:15 +0000
+
+gcl (2.6.1-21) unstable; urgency=low
+
+  * Automatic readline initialization
+  * Add watch file
+  * Prevent circular error loops
+  * Prevent automatic optimization added to CFLAGS by autoconf
+  * Rework documentation installation in and outside of Debian
+  * Support user deined predicates at an elementary level in the form
+    '(satisfies foop) in gcl_predlib.lsp
+  * Install binary gcd algorithm for ~10% performance increase
+  * Rescale some default allocation parameters -- bignum allocation by
+    relblocks by default, default growth parameters are 1 (min),
+    0.1*MAXPAGE (max), 0.5 (increase), 0.3 (percent free), holepage is
+    4*MAXPAGE/1024, INIT_HOLEPAGE, INIT_NRBPAGE and RB_GETA scale
+    accordingly
+  * Clean windows/sysdir.bat
+  * Check for zero args in new gcd code
+  * Default hole is maxpages/10, holesize configure option added
+  * Fix syntax errors in older reloaction code: sfaslelf.c
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 16 Jan 2004 16:57:50 +0000
+
+gcl (2.6.1-20) unstable; urgency=low
+
+  * Fix gcl-doc doc-base files
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 30 Dec 2003 22:30:39 +0000
+
+gcl (2.6.1-19) unstable; urgency=low
+
+  * Fix bug in compiler::c2labels in which *ccb-vs* was missing a ocal
+    rebind
+  * Remove duplicate tags from compiled C switch statements
+  * Minor merges for DARWIN support
+  * Path to configure to make --enable-emacsdir work
+  * Check for readline/readline.h header before configuring for readline
+  * Improve system bfd library location detection
+  * Make sure external gmp lib is compatible via __GNU_MP_VERSION, else
+    backoff to local gmp build;  prepend externally defined CFLAGS into
+    output CFLAGS, FINAL_CFLAGS, and NIFLAGS
+  * Remove --enable-gmp configure option; gmp is required for GCL
+  * Use --enable-emacsdir in debian/rules, make sure --enable-emacsdir
+    and --enable-infodir work when arg contains ${prefix}
+  * Fix typo in chap-6.texi
+  * Make sure to export SGC define from config.h to cmpinclude.h -- Now
+    that we used optimized structures in the compiler, we need at least
+    the definition of SGC_TOUCH there to prevent GBC errors.  FIXME --
+    handle header dependencies more robustly.  Thanks to Robert Boyer
+    for the report
+  * Improve SGC define extraction for cmpinclude.h
+  * Fix variable reference errors which were occurring for compiled
+    local functions defined within closure-generating or other
+    environment stack pushing functions when safety is set to 3 (thanks
+    Paul Dietz for the report.).  When constructing local functions and
+    closures within a 'mother' function, *ccb-vs* will hold the number
+    of closure environments stacked at the point of each closure
+    creation or call to a local function.  This value is stored as the
+    cadr of a list pushed onto *local-funs*, and is read when writing
+    out the C code for the local function or closure, where it is used
+    to initialize *ccb-vs* and *initial-ccb-vs* for subsequent
+    processing.  The latter is used as the reference point when
+    addressing variables in wt-ccb-vs, as the former could be still
+    further incremented within the closure or local function itself.
+    Local functions as opposed to closures do not increment *ccb-vs* and
+    do not push the environment.  When a local function is defined
+    within a closure-generating flet/labels, or a tagbody or block which
+    pushes the environment, the value of *ccb-vs* written to the list
+    corresponding to the local function can be erroneously incremented
+    beyond the *initial-ccb-vs* value established before any environment
+    pushing operations were processed.  It is this latter value which is
+    appropriate for use in wt-ccb-vs, as the local functions, unlike the
+    closures, receive an environment level with the mother generating
+    function.  We therefore push *initial-ccb-vs* onto the end the list
+    pushed onto *local-funs* only when defining a local function, and use
+    it to initialize an added optional variable initialize-ccb-vs in
+    t3local-fun and t3local-dcfun, which default to the original ccb-vs.
+    We then bind *initial-ccb-vs* to this new optional parameter instead
+    of the former *ccb-vs, which was only appropriate for closures.
+  * Put in rudimentary logic for the selection of stack vs. heap storage
+    for bignums depending on the frame context.  FIXME, this logic is
+    too conservative at present.  SETQ_II and SETQ_IO take an additional
+    parameter which is malloc when *unwind-exit* is bound and contains
+    'frame and  alloca otherwise.  New macro bignum-expansion-storage.
+    FIXME, ensure that IDECL does not need similar modification.
+  * Cleanup a few compiler warnings in the compiler
+  * Cleanup compiler warning in alloc.c
+  * Eliminate unneeded transformatio of contniguous pages to other pages
+    on save-system.
+  * malloc -> gcl_gmp_alloc in recent setjmp frame protected bignum
+    allocation
+  * Add -Wa,--execstack if on an exec-shield enabled system, can be
+    explicitly added otherwise by setting the CFLAGS variable before the
+    configure step
+  * Better execstack flag handling in configure
+  * Allow for commas in CFLAGS in sed command writing *cc*
+  * Preliminary gprof profiling support
+  * Rework html documentation generation and installation, Closes:
+    #221774
+  * Remove parentheses from setf class-name info node in chap-7.texi
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 30 Dec 2003 16:26:45 +0000
+
+gcl (2.6.1-18) unstable; urgency=low
+
+  * Portability patches to makefiles to support non-GNU grep (no -q),
+    and non-bash sh, C_INCLUDE_PATH=...;export C_INCLUDE_PATH
+  * copy the global *info* parameter in c1flet and c1labels to prevent
+    accumulation of old data -- FIXME -- make sure there are no other
+    copies required, and eventually replace this global parameter with
+    local variables
+  * Turn on some optimization on hppa, -O only
+  * Make all C defined functions installed into lisp static functions to
+    work around dynamic function descriptors on ia64, Closes: #217484,
+    Closes: #204789, (STATIC_FUNCTION_POINTERS define in config.h)
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  6 Nov 2003 15:40:25 +0000
+
+gcl (2.6.1-17) unstable; urgency=low
+
+  * Repair weak symbol addition to the bfd symbol table in sfasli.c
+  * Be more thorough about adding fun-info to call-local info in
+    gcl_cmpflet.lsp, accompanying simplifications in gcl_cmpeval.lsp
+    (call-global lists have info updated by args already in (c1args args
+    info)), small changes in add-info in gcl_cmpinline.lsp, FIXME --
+    study rational for *info* special variable in certain places as
+    opposed to more common copy-info
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 30 Oct 2003 20:03:22 -0500
+
+gcl (2.6.1-16) unstable; urgency=low
+
+  * Fix sh syntax in debian/gcl.sh
+  * init_or_load1 -> gcl_init_or_load1 in xgcl-2/sysinit.lsp
+  * Load weak symbols as well as undefined symbols in
+    bfd_build_symbol_table, for the purposes of the static build
+    possibility
+  * Map t and nil stream indicators properly in optimized compiled
+    references to read_char1 and read_byte1 (in read.d)
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 23 Oct 2003 16:43:15 +0000
+
+gcl (2.6.1-15) unstable; urgency=low
+
+  * Remove imod/ifloor functions in cmpaux.c and directly inline their
+    fixed equivalents in gcl_cmpopt.lsp
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 13 Oct 2003 15:04:24 +0000
+
+gcl (2.6.1-14) unstable; urgency=low
+
+  * generate less garbage in add-info (gcl_cmpinline.lsp), enabling
+    maxima compile to complete in a finite time :-)
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 10 Oct 2003 22:14:04 +0000
+
+gcl (2.6.1-13) unstable; urgency=low
+
+  * Fix compiler optimization bug in gcl_cmpopt.lsp -- missing parens
+    around inliner for max and min
+  * collect info structures for local functions in flet and labels
+    processing (gcl_cmpflet.lsp), and pass upwards to call-local and
+    call-global (gcl_cmpeval.lsp) to fix certain inlining bugs in via
+    more proper operation of args-info-changed-vars (gcl_cmpinline.lsp,
+    inline-args, gcl_cmplet.lsp, c2let)
+  * Fix an obviou int overflow in ifloor (o/cmpaux.c), handle more
+    proper fixnum/integer determination from declarations later
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 10 Oct 2003 02:34:11 +0000
+
+gcl (2.6.1-12) unstable; urgency=low
+
+  * Restore mpz_to_mpz{1} in gmp_big.c, can be written by compiler
+  * tk8.4 patches
+  * Prevent destructive modification of bignum arguments in log_op/mp_op
+    in gmp_big.c
+  * Make sure to push stack variables onto newly allocated C variable
+    when inlining args and args cause side effects, in inline-args,
+    gcl_cmpinline.lsp
+  * Fix bug related to gcc-3.3 fixes in set_exponent in num_co.c
+  * Remove pcl_methods.c patch. as is apparently no longer needed, TODO
+    -- make sure VOL modifier is inserted where needed to prevent
+    longjmp clobbers
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  2 Oct 2003 14:26:43 +0000
+
+gcl (2.6.1-11) unstable; urgency=low
+
+  * Add compilation step of compiling all lsp and cmpnew .lsp files from
+    an interpreted only saved_pre_gcl before the creation of saved_gcl -
+    - this enables us to use full optimization on these files while
+    getting the STREF constants right on 32bit and 64bit
+  * remove 'attic' from comment in gcl_loop.lsp
+  * configure changes for sizeof(struct contblock) detection
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 24 Sep 2003 16:09:44 +0000
+
+gcl (2.6.1-10) unstable; urgency=low
+
+  * Mac OSX GET_FULL_PATH_SELF
+  * Preliminary subtypep checking for 'satisfies
+  * preliminary 'satisfies support in subtypep, more predicate type
+    pairs and reverse checking
+  * small compiler change to remove unused C variables from optimized
+    compiled macros
+  * Optional compiler init file is called gcl_cmpinit
+  * fasdmacros.lsp -> gcl_fasdmacros.lsp
+  * All cmpinit.lsp files named gcl_cmpinit.lsp; allow full lisp
+    optimization in all directories
+  * collectfn -> gcl_collectfn in lsp/gcl_auto.lsp
+  * collectfn -> gcl_collectfn in cmpnew/gcl_make-fn.lsp
+  * Make sure makefiles can generate sys-proclaim.lsp, regenerate these
+    files and recompile from lsp
+  * Rebuild with opts enabled
+  * Iterate sys-proclaim/rebuild generation once more
+  * Iterate sys-proclaim/rebuild for pcl and clcs
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 23 Sep 2003 19:33:27 +0000
+
+gcl (2.6.1-9) unstable; urgency=low
+
+  * Close streams in fasldlsym.c
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 16 Sep 2003 14:57:20 +0000
+
+gcl (2.6.1-8) unstable; urgency=low
+
+  * Add processor flag variable to flags in configure.in
+  * Autoadd full path to kcl_self to enable save-system when user moves
+    executable and calls without script wrapper
+  * Add special variables si::*collect-binary-modules* and si::*binary-
+    modules* as a facility for discovering the list of fasloaded objects
+    preceding a save-system is required for a subsequent compiler::link
+  * Add collectfn.lsp to distro
+  * Rename some files and init_ functions to eliminate namespace
+    conflicts when building images with compiler::link
+  * Enable compressed info reading
+  * Make sure no opt flags are set when enable debug is specified
+  * Use NIFlAGS to compile new_init with lower opts on ppc to work
+    around gcc bug, restore full opts to other files
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 14 Sep 2003 02:18:28 +0000
+
+gcl (2.6.1-7) unstable; urgency=low
+
+  * Fix permissions bug in temporary gzipped file handling
+  * Propagate control changes correctly with package extension
+  * Newer standards
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  9 Sep 2003 17:06:56 +0000
+
+gcl (2.6.1-6) unstable; urgency=low
+
+  * Remove build-dependency on autoconf as a temporary work around to
+    Debian autoconf's dependency bug on emacsen-common
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  9 Sep 2003 15:29:06 +0000
+
+gcl (2.6.1-5) unstable; urgency=low
+
+  * Redefine temporary files in elisp/makefile
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  8 Sep 2003 21:49:09 +0000
+
+gcl (2.6.1-4) unstable; urgency=low
+
+  * Fix to sfasli.c to avoid defining symbols in other than *UND*
+    sections
+  * Remove some 64 bit warnings
+  * Turn off def_static on ia64 for now -- its broken
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  6 Sep 2003 17:22:10 +0000
+
+gcl (2.6.1-3) unstable; urgency=low
+
+  * Fix static detection fr ia64; contblock size detection on arm
+  * Fix gcc verion checking in gmp3 subconfigure, esp. for arm
+  * Escape all sgc code with #ifdef SGC
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  5 Sep 2003 21:32:47 +0000
+
+gcl (2.6.1-2) unstable; urgency=low
+
+  * Add windows/install.lsp to clean target
+  * Add in macosx files to stable and cvs head
+  * Fix bad debelper postinst, Closes: #208765
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  5 Sep 2003 13:15:11 +0000
+
+gcl (2.6.1-1) unstable; urgency=low
+
+  * New upstream release
+  * Type-punning warning fixes
+  * small_fixnum overflow fixes
+  * off by one fix in cerror
+  * Fix compiler error which had not recognized defpackage as a package
+    operation
+  * Fix tkl.lisp call to open-named-socket
+  * Make values-list and nreconc signal errors when they should on
+    dotted lists.
+  * Avoid use of windows.h types as macros.
+  * New config.{sub,guess}
+  * Windows installer updates from CVS HEAD
+  * fix potential longjmp clobber in read.d;add some windows files to
+    main makefile clean target;
+  * Darwin revealed fixes to usig.c and unixtime.c
+  * Fix gbc time calculation in case of recursive gbc calls
+  * Run patch_sharp in LSharp_exclamation_reader to handle new case of
+    defpackage ops at head of fasl vector, required for maxima build
+  * Special symbol Dotnil has ordinary list Cnil for plist and hpack
+  * Small fixes for profiling support
+  * Restore pp() function for debugging; print out undefined symbol
+    names
+  * Small patch for fix xgcl demo (thanks  Michael Koehne)
+  * Better bfd symbol table strategy
+  * Fix bfd table symbol counting for combined_table profiling
+  * amd64 linux support
+  * O6 -> O3
+  * static linking on ia64 to work around current mechanism for runtime
+    generated function descriptors
+  * enable-static configure option
+  * Fix debian/gcl-doc.docs for latest texinfo file splitting policy,
+    Closes: #206017
+  * Fix typo in o/sfasli.c
+  * Rework debian package structure to handle stable and cvs packages
+    simultaneously
+  * Add gazonk*.lsp to clean target
+  * syntax fix to lsp/gprof.hc
+  * Add support for SGC contblock pages
+  * Fixes to debian/rules
+  * Remove unused definitions of Vcs
+  * Increase default maxpages and stack sizes
+  * Maintain a persisten *system-directory* binding
+  * Push installed /h directory onto -I flags on cc command line
+  * Escape old in-package behavior with #ifdef ANSI_COMMON_LISP
+  * define HAVE_XDR in linux.h
+  * reduce resolution of contblock mark_table in gbc.c to match new
+    minimum granularity introduced via CPTR_ALIGN
+  * Remove exit function in main.c
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  4 Sep 2003 02:20:52 +0000
+
+gcl (2.5.3-2) unstable; urgency=low
+
+  * gcc-3.3 all platforms
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  7 Jul 2003 16:10:25 +0000
+
+gcl (2.5.3-1) unstable; urgency=low
+
+  * New upstream release
+  * Restore object_to_float and object_to_double, cmpaux.c, Closes: #195470.
+  * Remove obsolete functiion multiply-bignum-stack from documentation,
+    si-defs.texi
+  * Unstatic object_to_float, object_to_double
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  2 Jun 2003 12:38:03 -0400
+
+gcl (2.5.2-1) unstable; urgency=low
+
+  * New upstream release
+  * Cleanup xdrfuns.c for Axiom
+  * Reenable xgcl build
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 20 Mar 2003 09:15:54 -0500
+
+gcl (2.5.1-1) unstable; urgency=high
+
+  * some optimization now on hppa
+  * Add RELEASE-2.5.1 file
+  * Add dedication notice to the memory of W. Schelter
+
+ -- Camm Maguire <camm@enhanced.com>  Sun,  2 Mar 2003 10:20:26 -0500
+
+gcl (2.5.0.cvs20020625-80) unstable; urgency=low
+
+  * enable japi configure flag, defaults to no
+  * enable -mlongcall on ppc when using gcc 3.3 or higher
+  * int -> fixnum in DEFUN function arguments for safety -- ensures
+    pointers and integers passed by lisp are of same size
+  * MYmake_fixnum macro simplification
+  * ufixnum typedef
+  * Prototypes for cmod et.al. -- restoring maxima build on ia64
+  * Fix unaligned access message on ia64 generated by DFLT_aet_fix
+  * Integer va_arg uses fixnum
+  * Define __*i3 symbols used by GCL, supplied by libc, and written into
+    some GCL compiled objects, restores ARM build with ANSI image
+  * num_log.c miscompilation on ia64 apparently fixed, Closes: #156291
+  * Ensure cmpinclude.h up to date in main makefile
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  1 Mar 2003 17:33:29 -0500
+
+gcl (2.5.0.cvs20020625-79) unstable; urgency=low
+
+  * Fix Debian package install bug
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 27 Feb 2003 23:17:55 -0500
+
+gcl (2.5.0.cvs20020625-78) unstable; urgency=low
+
+  * Add config.log config.status and config.cache to clean target
+  * Remove xgcl-2/debian directory
+  * Update clcs/sys-proclaim.lisp
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 27 Feb 2003 18:48:38 -0500
+
+gcl (2.5.0.cvs20020625-77) unstable; urgency=low
+
+  * Lintian cleanups
+  * Don't strip libansi_gcl.a, need .data at end of .o, as with libgcl.a
+  * Take newlines out of doc string for init-cmp-anon
+  * Cleanup gcc-3.2 compiler warning
+  * 64 bit STREF fixes
+  * pcl and clcs need to have C rebuilt afresh, as 64 bit machines write
+    different STREF offsets into the C files
+  * Rework Debian package build a bit
+  * README.Debian explaining the toggling of the ANSI image
+  * Typo in debian/rules
+  * Remove debian/gcl.conffiles
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 27 Feb 2003 15:56:11 -0500
+
+gcl (2.5.0.cvs20020625-76) unstable; urgency=low
+
+  * Debian Priority is optional
+  * Configure lowest common denominator on m68k to m68020 -- gcc-3.2
+    can't handle m68000 -- no __mulsi3
+  * Fix bit array bug
+  * Add upgraded-array-element-type
+  * Misc typep and subtypep fixes
+  * Proper error handling in certain array.c functions
+  * First needs exactly one arg
+  * Proper error handlin in LAST
+  * bit array allocation fixes in num_log.c
+  * eliminate Iapply_fun_n1
+  * Dummy system find-class in traditional image, overwritten by pcl
+    version in ANSI
+  * Invalid variable is a program error, not a symbol is a type error
+  * Attempt at uninterned symbol support as slot names
+  * defstruct changes for ANSI conc-name handling
+  * Rework ansi build to follow existing pattern for traditional image,
+    enabling preliminary ansi support on dlopen systems
+  * Fix broken mingw probe in main makefile
+  * Rename pcl and clcs files to avoid init name conflict on dlopen
+    systems
+  * sys-proclaim for clcs
+  * Compiler goto indentation
+  * Compiler pointer cast in call_or_link_closure
+  * *keep-gaz* compiler variable to save anonymously generated lisp
+  * si::init-cmp-anon function to initialize anonymously generated and
+    compiled lisp from .text section of running executable
+  * Debian/rules builds and ships both images
+  * Check for small fixnum in make_fixnum macro
+  * Pass real integers to array functions to minimize fixnum garbage
+  * Larger SHARP_EQ_CONTEXT_SIZE in read.d
+  * Shadowing-import instead of import dummy symbols into common-lisp in
+    ansi_cl.lisp
+  * Rework object definition in makefiles
+  * Remove old gmp directory
+  * Remove old tests directory
+  * Reinsert JAPI configuration
+  * Spruce up clean target
+  * Use saved_gcl to recompile cmpnew files
+  * Toggle ansi image with GCL_ANSI environment variable
+  * Version 2.5.1
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 26 Feb 2003 21:31:04 -0500
+
+gcl (2.5.0.cvs20020625-75) unstable; urgency=low
+
+  * Export truename for dlopen systems
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 14 Feb 2003 23:31:15 -0500
+
+gcl (2.5.0.cvs20020625-74) unstable; urgency=low
+
+  * Remove duplicates in apropos a la clisp
+  * Use static where possible, remove unused functions, decrease global
+    symbol count by about 1/3 (~ 600 global functions)
+  * Inline optimize cmod,cplus,ctimes and cdifference like maxima
+  * eliminate make-pure-array from lfun_list.lsp, not defined
+  * Prototypes for all possible compiler generated function calls
+  * relative symlink for cmpinclude.h in Debian package
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 14 Feb 2003 20:17:31 -0500
+
+gcl (2.5.0.cvs20020625-73) unstable; urgency=low
+
+  * typep fixes for class types
+  * m68k Build-depend on gcc-2.95 as a temporary work around to bug
+    179807
+  * gcc-3.2 warning cleanups
+  * bfd_boolean syntax support for newer binutils
+  * gcc-3.2 on powerpc can't yet handle -O2 and higher
+  * Reenable gcc-3.2 for m68k and do some guesswork in configure
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 10 Feb 2003 13:47:00 -0500
+
+gcl (2.5.0.cvs20020625-72) unstable; urgency=high
+
+  * Fix to siLbit_array_op for 0 dimension arrays
+  * Fixed aref of short-float vector
+  * nconc can take dotted lists
+  * tailp returns t if first arg is nil
+  * Repair nconc and tailp fixes
+  * varargs->stdarg for gcc 3.3 and higher
+
+ -- Camm Maguire <camm@enhanced.com>  Sun,  9 Feb 2003 16:57:33 -0500
+
+gcl (2.5.0.cvs20020625-71) unstable; urgency=high
+
+  * ansi changes to sloop.lsp and conditions.lisp to fix symbol tests
+  * :definition-before-pcl -> definition-before-pcl
+  * Allow spaces in pathnames
+  * Significant fixes to gmp_num_log.c affecting bitwise ops on bignums
+  * Fix test segfault arising from faulty structure-type-included-type-
+    name in gcl-low.lisp ; Thanks Peter
+  * aref1 -> row-major-aref
+  * Fixes to certain numerical functions to handle denormalized floating
+    point numbers
+  * Number of argument check in IapplyVector
+  * Print offset bit vectors correctly
+  * Correct precision for formatting short and long doubles
+  * Added si::modf
+  * Do not trigger error in IapplyVector if max args is zero
+  * Fixes to with-package-iterator to cleanup compiler warnings
+  * :invalid-variable is a type error
+  * No max arg checking if &key or &rest present
+  * proper defun declarations in listlib.lsp
+  * class specifiers in typep, subtypep and coerce
+  * Corrections to allow-other-key processing in bind.c
+  * eval sfuns with argument error checking (in one place)
+  * copy-structure takes only one arg
+  * si::classp, si::class-of, and si::class-precedence-list overwritten
+    by pcl analogs when compiling ansi
+  * recompiled core lsp and compiler files
+  * restore dvi and html doc build for non-mingw
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 24 Jan 2003 13:55:11 -0500
+
+gcl (2.5.0.cvs20020625-70) unstable; urgency=high
+
+  * loop fixes
+  * configure fixes
+  * :common-lisp in *features*
+  * :definition-before-clcs -> definition-before-clcs
+  * protect against sgc segfault within fread in fasdump.c -- fixes m68k
+    acl2 build
+  * SGC for s390
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  5 Dec 2002 08:02:17 -0500
+
+gcl (2.5.0.cvs20020625-69) unstable; urgency=high
+
+  * eval fix
+  * \-mlong-calls for arm
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 25 Nov 2002 08:35:27 -0500
+
+gcl (2.5.0.cvs20020625-68) unstable; urgency=high
+
+  * enable emacsdir configure option
+  * reordered configure X lib detection for solaris
+  * redo integer declarations for gmp bignums to avoid compiler warnings
+  * Clear large and negative count errors for remove/delete
+  * Loop error fixes
+  * cache flush with page granularity on m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 21 Nov 2002 17:44:30 -0500
+
+gcl (2.5.0.cvs20020625-67) unstable; urgency=high
+
+  * Align cache flushes for powerpc and m68k on 32 byte boundaries,
+    should fix acl2 build
+  * Removed diagnostic SIGILL trapping in cmpaux.c
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 12 Nov 2002 23:25:49 -0500
+
+gcl (2.5.0.cvs20020625-66) unstable; urgency=high
+
+  * Fix SIGILL trap in cmpaux.c
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 11 Nov 2002 11:14:07 -0500
+
+gcl (2.5.0.cvs20020625-65) unstable; urgency=high
+
+  * Miscellaneous Freebsd patches
+  * non-recursive with-package-iterator
+  * map-into fill-pointer fixes
+  * changes to the user-init mechanism for portable acl2 build
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 10 Nov 2002 12:33:59 -0500
+
+gcl (2.5.0.cvs20020625-64) unstable; urgency=low
+
+  * Fix epsilon calculations again to reenable arm build
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  1 Nov 2002 07:08:33 -0500
+
+gcl (2.5.0.cvs20020625-63) unstable; urgency=low
+
+  * Add versioned dependency on the gcc used to build gcl
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 29 Oct 2002 16:20:22 -0500
+
+gcl (2.5.0.cvs20020625-62) unstable; urgency=low
+
+  * with-package-iterator modifications
+  * with-package-iterator uses labels to correctly provide for recursion
+  * Fix doc directory problem with install target in info/makefile
+  * Fix info dir setting in configure
+  * Priority extra
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 28 Oct 2002 23:45:07 -0500
+
+gcl (2.5.0.cvs20020625-61) unstable; urgency=low
+
+  * Placeholder support for optional condition in find-restart
+  * defpackage error on importing non-existent symbols
+  * working with-package-iterator macro
+  * various package errors reported as :package-error
+  * Destructuring-bind fixes
+  * delete-package error fix
+  * pcl functions use pcl-destructuring-bind for now -- fix later
+  * Trigger error if function calls use too many 'values'
+  * Maximum values increased to 50
+  * Enable previously failing tests in multiple-value-{setq,prog1}.lsp
+  * prototype for system_time_zone_helper
+  * Initial changes for solaris support
+  * make -> $(MAKE) in makefiles
+  * Incorporated main GCL (ANSI) Lisp Documentation in distribution
+
+ -- Camm Maguire <camm@m.enhanced.com>  Mon, 28 Oct 2002 04:31:33 -0500
+
+gcl (2.5.0.cvs20020625-60) unstable; urgency=low
+
+  * Still better acosh, courtesy of Barton Willis
+  * Better epsilon contant determination in ieee case
+  * Implicit tagbody in do-symbols and do-all-symbols
+  * Better epsilon handling in ieee case
+  * Add setf (values ... support
+  * invalid-function errors are type errors
+  * ecase and ccase take t and otherwise clauses
+  * ECASE/CCASE test fixes
+  * setf values fixes to use setf instead of setq when target value is
+    not a symbol
+  * ETYPECASE/CTYPECASE can take t and otherwise
+  * Backout of restart-clusters export
+  * fix handler.lisp
+  * Fix to bfd/GBC interaction
+
+ -- Camm Maguire <camm@m.enhanced.com>  Wed, 23 Oct 2002 08:38:08 -0400
+
+gcl (2.5.0.cvs20020625-59) unstable; urgency=low
+
+  * wrong number of arguments, keyword errors in lambda list bindings,
+    are program errors
+  * acosh fix at -1.0
+  * New config.sub and config.guess files and automatic updates in
+    binutils, gmp, and gmp3 subdirs
+
+ -- Camm Maguire <camm@m.enhanced.com>  Wed, 16 Oct 2002 11:38:56 -0400
+
+gcl (2.5.0.cvs20020625-58) unstable; urgency=low
+
+  * GENSYM fixes
+  * add complement and constantly
+  * import certain symbols into common-lisp package
+  * Fix makefile bug in install target
+  * Prepend instead of overwrite C_INCLUDE_PATH in shell wrapper
+  * More shell variable fixes in main makefile
+  * Corrected order of push and pushnew
+  * Set bfd_error appropriately
+  * Report function for package-error in condition-definitions.lisp;fix
+    internal-package-error deinition and handling;export *restart-
+    clusters* to user error code specified in handler-case;package-error
+    error formatting changes;dummy optional argument added to compute-
+    restarts (for now);Paul Dietz patch to defpackage.lsp fixing several
+    tests (thanks);export/unexport error handling fixes
+  * Recompile c,h and data files
+  * Fix number of argument errors in debug.lsp;documentation support for
+    packages in defpackage.lsp and module.lsp;do-symbols loops over
+    inherited symbols too in packlib.lsp
+  * Reworked EXTRAS variable handling in unixport/makefile
+  * Build-depend on autotools-dev and automatic update of config.sub and
+    config.guess;newer config.sub and config.guess in cvs tree; Closes:
+    #164526
+  * Remove stray comments in package.d
+  * elt errors of type type error
+  * bad-sequence limit returns type error
+
+ -- Camm Maguire <camm@m.enhanced.com>  Tue, 15 Oct 2002 15:39:19 -0400
+
+gcl (2.5.0.cvs20020625-57) unstable; urgency=low
+
+  * Capitalization changes to names of special characters;graphic-char-p
+    fix
+  * fix shadowing of existing symbols in package.d
+  * (simple-)base-string not a subtype of (simple-)vector
+  * add package-error condition(preliminary);hash conditions only by the
+    error name, not the format string;pass error types for both
+    correctable and non-correctable situations;eliminate duplicate
+    loading of clcs/package.lisp;Allow t doc-types in documentation
+    (returning nil) for now;fix final type errors in predlib.lsp
+    (regarding base-string);other error functions to pass continuable
+    errors (needs cleaning up);package designators can be
+    characters;delete-package added;make-package doesn't :use lisp by
+    default;in-package returns error if package does not exist instead
+    of making the package(relatively big change -- need to address
+    instances of in-package in .lsp code);call make-package on relevant
+    packages in init_gcl.lsp.in and pcl/sys-package.lisp;
+  * \-ffunction-sections for hppa with no-optimization -- enables first
+    maxima build here
+  * separate lisp variables to specify optimization flags for level 2
+    and 3
+  * symbol-name throws a type error on bad input
+  * tk8.2 -> tk8.3
+  * Fix bug in main makefile
+  * Newlines at end of test files
+
+ -- Camm Maguire <camm@m.enhanced.com>  Wed,  9 Oct 2002 15:04:41 -0400
+
+gcl (2.5.0.cvs20020625-56) unstable; urgency=high
+
+  * ansi-test corrections; extra-libs option to LINK function; LINK doc
+    change; subtypep and string changes to pass more tests
+  * Add method-combination and structure-object symbols for ansi;remove
+    unused variables in debug.lsp;remove in-package system from
+    defstruct.lsp;make-keyword and defmacro temporary function
+    placeholders in destructuring_bind.lsp;predlib changes to fix ansi-
+    test type errors;break-call takes 2 args (sys-proclaim.lisp);char
+    and char-set protected by string dimension not fillpointer in
+    string.d;fix bug in string.d:member_char for vector types;redefine
+    slot reader and writer functions in pcl/impl/gcl/gcl-low.lisp
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  5 Oct 2002 14:33:46 -0400
+
+gcl (2.5.0.cvs20020625-55) unstable; urgency=high
+
+  * Add LINK documentation to info pages
+  * 0 length last support
+  * make-sequence error check for 'null type and non-zero size
+  * Dotted-list support in member
+  * Reworked dotnil definitions and support macros
+  * add compile-file-pathname
+  * setup C_INCLUDE_PATH env variable in gcl shell wrapper
+  * POSITIVE-FIXNUM variable type,simple-error->type error where
+    indicated by various ansi tests, eq->eql in ldiff and tailp;proper
+    lists only in member et. al.
+  * rev keyword for member1 to reverse test arguments
+  * specific-error function to pass a given type of error from lisp
+  * set-exclusive-or preserves order of test arguments
+  * type-errors where appropriate in make-sequence
+  * nil keys accepted in remove/delete et.al.
+  * Reworked linking command line to ensure that certain symbols are
+    resolved in libgcl.a as opposed to certain system libraries, e.g.
+    gmp
+  * new gmp for m68k;no -ffloat-store for m68k a requested by user due
+    to performance impact (will alter test results in maxima
+    accordingly)
+  * libgclp.a for objects to be overriden by the C library if necessary
+  * readably support
+  * boolean type
+  * Missing ansi type support
+  * subtype code for boolean
+  * add missing ansi types as known types
+  * other preliminary subtype code for missing ansi types
+  * rework result-type check in make-sequence
+  * :element-type support in make-string (preliminary)
+  * (char ignores fill-pointer
+  * remove -O4 from debian/rules
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  3 Oct 2002 01:52:45 -0400
+
+gcl (2.5.0.cvs20020625-54) unstable; urgency=high
+
+  * Fix delete et. al. :from-end error; typo in gbc.c
+  * character and string-char equal in type hierarchy
+  * concatenate/make-sequence fixes
+  * merge takes nil key argument
+  * make-sequence checks size against result type
+  * install endp macro for dotted list support
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 24 Sep 2002 14:57:44 -0400
+
+gcl (2.5.0.cvs20020625-53) unstable; urgency=high
+
+  * Sleep with (in principle) microsecond precision
+  * nth-value macro added
+  * \-ffloat\-store and warning cleanups for m68k
+  * Compile hppa with debugging, will get a build but a broken one, ok
+    for now, Closes: #159591
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 20 Sep 2002 09:48:35 -0400
+
+gcl (2.5.0.cvs20020625-52) unstable; urgency=high
+
+  * Fixed gcc version bug in debian/rules
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Sep 2002 18:00:50 -0400
+
+gcl (2.5.0.cvs20020625-51) unstable; urgency=high
+
+  * static gmp for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Sep 2002 09:33:03 -0400
+
+gcl (2.5.0.cvs20020625-50) unstable; urgency=high
+
+  * Reworked static gmp target for new libgcl.a;gcc-3.2 for
+    hppa,ia64,and arm;libgmp2-dev for m68k;no rsym with
+    dynsysbfd;build_symbol_table earlier to shrink table size;
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 12 Sep 2002 00:39:17 -0400
+
+gcl (2.5.0.cvs20020625-49) unstable; urgency=high
+
+  * Use old gmp for m68k until can pin down test failure with gmp3
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 10 Sep 2002 00:36:10 -0400
+
+gcl (2.5.0.cvs20020625-48) unstable; urgency=high
+
+  * Rework build and install so that custom images can be made without
+    the source tree, even when using dlopen
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  9 Sep 2002 23:26:47 -0400
+
+gcl (2.5.0.cvs20020625-47) unstable; urgency=high
+
+  * Install cmpinclude.h in system include directory
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 29 Aug 2002 23:31:55 -0400
+
+gcl (2.5.0.cvs20020625-46) unstable; urgency=high
+
+  * Keep a *much* smaller piece of gmp.h in cmpinclude.h, reducing image
+    size by almost 100k
+  * Check for _SHORT_LIMB and _LONG_LONG_LIMB in configure
+  * Remove build specific include directories from compile command in
+    final executable
+  * Include local regexp.h explicitly in cmpinclude.h, to eliminate
+    intereference with system regexp.h, and to fix bug in which gcl
+    compilation depended on existing build directories
+  * Correctly add directory paths to extra gmp file targets in
+    unixport/makefile for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 29 Aug 2002 21:56:28 -0400
+
+gcl (2.5.0.cvs20020625-45) unstable; urgency=high
+
+  * Fix typo in rshift target for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 28 Aug 2002 18:02:00 -0400
+
+gcl (2.5.0.cvs20020625-44) unstable; urgency=high
+
+  * Handle second argument to last; treat dotted lists correctly in
+    ldiff et. al., tailp fix
+  * optional key argument for assoc-if et.al.;eval getf deflt if in setf
+  * Fix infinite loop in assoc-if et.al.
+  * X_LIBS and X_CFLAGS determination in configure script
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 21 Aug 2002 18:22:37 -0400
+
+gcl (2.5.0.cvs20020625-43) unstable; urgency=high
+
+  * Larger ihs stack;fix array-total-size-limit;check negative
+    fillp;allow #P
+  * don't make common_lisp package when not configuring with --enable-
+    ansi
+  * Patch gmp3/mpn/m68k/{l,r}shift.asm, restore gmp3 to m68k build
+  * Dynamic libgmp support, overriding with patched functions from local
+    source where necessary
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 18 Aug 2002 12:10:55 -0400
+
+gcl (2.5.0.cvs20020625-42) unstable; urgency=high
+
+  * copy ansidecl.h and symcat.h in h/ for local bfd builds
+  * localize bfd.h includes to sfaslbfd.c
+  * take bfd/po out of the build loop
+  * import xgcl-2, but don't build by default
+  * oldgmp configure option, and made default for m68k as temporary
+    workaround
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 12 Aug 2002 23:49:09 -0400
+
+gcl (2.5.0.cvs20020625-41) unstable; urgency=high
+
+  * Minor rules revision for i164
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 11 Aug 2002 13:49:03 -0400
+
+gcl (2.5.0.cvs20020625-40) unstable; urgency=high
+
+  * revamp CONST configure test for certain bfd versions
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 11 Aug 2002 12:31:35 -0400
+
+gcl (2.5.0.cvs20020625-39) unstable; urgency=high
+
+  * gcc-3.1 for ia64 fixes a compilation bug in num_co.c for -O3 and
+    higher -- code takes address of a variable kept in a register
+  * compile num_log.c with -O only on ia64 to work around compiler bug
+
+ -- Camm Maguire <camm@enhanced.com>  Sun, 11 Aug 2002 08:53:03 -0400
+
+gcl (2.5.0.cvs20020625-38) unstable; urgency=high
+
+  * check for long c statck addresses, fixing NULL_OR_ON_C_STACK macro
+    for ia64
+  * Remove error in clean target
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 10 Aug 2002 13:20:08 -0400
+
+gcl (2.5.0.cvs20020625-37) unstable; urgency=high
+
+  * Replace tmpnam and mktemp with less dangerous mkstemp
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 19:45:52 -0400
+
+gcl (2.5.0.cvs20020625-36) unstable; urgency=high
+
+  * Fix rsym compilation when not using bfd
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 19:10:16 -0400
+
+gcl (2.5.0.cvs20020625-35) unstable; urgency=high
+
+  * Don't build bfd/po subdir
+  * Build-depend on automake and gettext
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 14:36:58 -0400
+
+gcl (2.5.0.cvs20020625-34) unstable; urgency=high
+
+  * fix zero length array support
+  * reverse configure order for bfd and libiberty
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 11:52:38 -0400
+
+gcl (2.5.0.cvs20020625-33) unstable; urgency=high
+
+  * chmod +x for subconfigures
+  * dlopen for appropriate arches in debian/rules
+  * add custreloc configure option
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 10:16:55 -0400
+
+gcl (2.5.0.cvs20020625-32) unstable; urgency=high
+
+  * Local bfd build option to prepare for arch-specific patches
+  * Try default gmp3 build on m68k
+  * Fix merge-pathnames
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  9 Aug 2002 00:13:16 -0400
+
+gcl (2.5.0.cvs20020625-31) unstable; urgency=high
+
+  * #undef bool in object.h for some gcc-3.1 installations
+  * New number_tan implementation using real tan, so optimized compiled
+    code will find symbol in -lm
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  6 Aug 2002 18:37:52 -0400
+
+gcl (2.5.0.cvs20020625-30) unstable; urgency=high
+
+  * fix bug in cmpif.lsp and recompile compiler
+  * \-O6 \-fomit\-frame\-pointer for Linux, speed gain of ~ 10%
+  * clean saved_gcl_pcl
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  5 Aug 2002 16:34:33 -0400
+
+gcl (2.5.0.cvs20020625-29) unstable; urgency=high
+
+  * Back out of hppa assembler register flush for hppa, apparently issue
+    is cleared by long/object function declaration fix
+  * Remove ansi2knr.1 man page, Closes: #155067
+  * hppa still has gc leak, possibly due to faulty setjmp.  Try Lamont
+    Jones' latest assembler to flush regs
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  2 Aug 2002 20:50:21 -0400
+
+gcl (2.5.0.cvs20020625-28) unstable; urgency=high
+
+  * SGC support for alpha
+  * generic gmp3 build for m68k
+  * compiler changes to declare all functions as returning object, with
+    functions that actually return long being cast appropriately
+  * back out of m68k hack in eval.c and funlink.c
+
+ -- Camm Maguire <camm@enhanced.com>  Fri,  2 Aug 2002 18:22:04 -0400
+
+gcl (2.5.0.cvs20020625-27) unstable; urgency=high
+
+  * Use generic lshift.c in gmp3 for m68k
+  * use SGC for ia64
+  * m68k workaround, cast (object(*)()) to (long(*)()) in funlink.c and
+    eval.c
+  * GBC register spiil asm for hppa
+  * fix hash_equal declaration error in hash.d
+
+ -- Camm Maguire <camm@enhanced.com>  Thu,  1 Aug 2002 18:12:49 -0400
+
+gcl (2.5.0.cvs20020625-26) unstable; urgency=high
+
+  * Remove extra load of tkl.o in install target of main makefile
+  * gcc-3.1 for hppa
+  * Remove gcc version spec for m68k
+  * \-fPIC for hppa, needed for dlopen
+  * cleanup gcc 3.1 warning in funlink.c
+  * cc instead of ld for -shared linking in fasldlsym.c (needed for
+    hppa)
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 31 Jul 2002 18:46:54 -0400
+
+gcl (2.5.0.cvs20020625-25) unstable; urgency=high
+
+  * Move chmod +x gmp3/* into debian/rules
+  * Remove gclm.bat from Debian package
+  * Build-Depend on autoconf, Closes: #154909
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 31 Jul 2002 09:44:20 -0400
+
+gcl (2.5.0.cvs20020625-24) unstable; urgency=high
+
+  * chmod +x gmp3/configure
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 31 Jul 2002 07:55:17 -0400
+
+gcl (2.5.0.cvs20020625-23) unstable; urgency=high
+
+  * 64bit SGC support
+  * SGC on by default for sparc-linux and mips(el)-linux
+  * Optimized logxor funtion
+  * Check for MP_LIMB_SIZE in fasdump.c, for 64bit support
+  * gbc fix for ia64
+  * gmp3 import for ia64
+  * system bzero, bcmp, and bcopy function prototypes
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 30 Jul 2002 23:11:58 -0400
+
+gcl (2.5.0.cvs20020625-22) unstable; urgency=high
+
+  * ElfW macros in rsym*.c for 64bit
+  * Allow for 8 byte gmp mp_limbs
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 25 Jul 2002 18:52:37 -0400
+
+gcl (2.5.0.cvs20020625-21) unstable; urgency=high
+
+  * Support for dlopen object loading where bfd is not yet working --
+    ./configure --enable-dlopen
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 25 Jul 2002 15:08:05 -0400
+
+gcl (2.5.0.cvs20020625-20) unstable; urgency=high
+
+  * Cleanups for --disable-bfd option
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 24 Jul 2002 15:05:28 -0400
+
+gcl (2.5.0.cvs20020625-19) unstable; urgency=high
+
+  * 64bit fixes
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 24 Jul 2002 12:16:42 -0400
+
+gcl (2.5.0.cvs20020625-18) unstable; urgency=high
+
+  * misc. lintian cleanups, mostly for 64 bit
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 23 Jul 2002 23:35:03 -0400
+
+gcl (2.5.0.cvs20020625-17) unstable; urgency=high
+
+  * Fixed typeo in error.c preventing arm compilation
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 22 Jul 2002 17:18:18 -0400
+
+gcl (2.5.0.cvs20020625-16) unstable; urgency=high
+
+  * Fix bad on_stack_list_vector args
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 22 Jul 2002 16:10:16 -0400
+
+gcl (2.5.0.cvs20020625-15) unstable; urgency=high
+
+  * More lint changes for sundry arches
+  * Fixed bug in Iapply_ap
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 20 Jul 2002 23:40:33 -0400
+
+gcl (2.5.0.cvs20020625-14) unstable; urgency=high
+
+  * include stdarg.h when defining _GNU_SOURCE
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 20 Jul 2002 18:47:43 -0400
+
+gcl (2.5.0.cvs20020625-13) unstable; urgency=high
+
+  * Proper va_dcl declarations
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 20 Jul 2002 10:40:02 -0400
+
+gcl (2.5.0.cvs20020625-12) unstable; urgency=high
+
+  * cvs updates for missing ptrdiff_t
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 20 Jul 2002 08:41:37 -0400
+
+gcl (2.5.0.cvs20020625-11) unstable; urgency=high
+
+  * cvs changes to compile cleanly with -Wall
+
+ -- Camm Maguire <camm@enhanced.com>  Sat, 20 Jul 2002 02:59:33 -0400
+
+gcl (2.5.0.cvs20020625-10) unstable; urgency=high
+
+  * Architecture any, though still have some issues
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 12 Jul 2002 19:02:09 -0400
+
+gcl (2.5.0.cvs20020625-9) unstable; urgency=high
+
+  * cvs commits for 64bit support
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 12 Jul 2002 18:01:21 -0400
+
+gcl (2.5.0.cvs20020625-8) unstable; urgency=high
+
+  * NULL_OR_ON_C_STACK macro correction for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 12 Jul 2002 14:37:48 -0400
+
+gcl (2.5.0.cvs20020625-7) unstable; urgency=high
+
+  * arm is bigendian
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 10 Jul 2002 18:04:22 -0400
+
+gcl (2.5.0.cvs20020625-6) unstable; urgency=high
+
+  * cvs updates for arm build
+
+ -- Camm Maguire <camm@enhanced.com>  Tue,  9 Jul 2002 16:09:26 -0400
+
+gcl (2.5.0.cvs20020625-5) unstable; urgency=high
+
+  * CC environment variable setting in debian/rules to aid in porting
+  * gcc 2.95 for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Sat,  6 Jul 2002 23:00:23 -0400
+
+gcl (2.5.0.cvs20020625-4) unstable; urgency=high
+
+  * gcc 3.0 for arm
+  * cachectl header for m68k
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  1 Jul 2002 15:47:53 -0400
+
+gcl (2.5.0.cvs20020625-3) unstable; urgency=high
+
+  * Better libbfd detection for arm/alpha
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 26 Jun 2002 17:27:21 -0400
+
+gcl (2.5.0.cvs20020625-2) unstable; urgency=high
+
+  * s390 support
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 25 Jun 2002 21:25:35 -0400
+
+gcl (2.5.0.cvs20020625-1) unstable; urgency=high
+
+  * CVS updates, new s390 arch
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 25 Jun 2002 19:26:36 -0400
+
+gcl (2.5.0.cvs20020610-2) unstable; urgency=high
+
+  * cvs updates
+
+ -- Camm Maguire <camm@enhanced.com>  Thu, 13 Jun 2002 08:42:32 -0400
+
+gcl (2.5.0.cvs20020610-1) unstable; urgency=high
+
+  * cvs updates
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 12 Jun 2002 23:04:57 -0400
+
+gcl (2.5.0.cvs20020523-2) unstable; urgency=high
+
+  * configure updates for better tk detection
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 24 May 2002 18:50:22 -0400
+
+gcl (2.5.0.cvs20020523-1) unstable; urgency=high
+
+  * New upstream release
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 24 May 2002 18:50:22 -0400
+
+gcl (2.5.0.cvs20020429-1) unstable; urgency=high
+
+  * Build-Depend on tk8.2-dev, Closes: #144330
+  * New cvs updates
+  * Added sparc to arch list, Closes: #143465
+
+ -- Camm Maguire <camm@enhanced.com>  Mon, 29 Apr 2002 23:07:36 -0400
+
+gcl (2.5.0.cvs20020219-2) unstable; urgency=medium
+
+  * flavor ->debian-emacs-flavor in emacsen-startup
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  4 Mar 2002 14:29:59 -0500
+
+gcl (2.5.0.cvs20020219-1) unstable; urgency=medium
+
+  * Updated package descriptions, Closes: #134402
+  * Static linking of libbfd, Closes: #134647
+  * Gcl currently only available on i386, arm and m68k as specified in
+    the Architecture control field, Closes: #133912
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 19 Feb 2002 12:04:29 -0500
+
+gcl (2.5.0.cvs-3) unstable; urgency=medium
+
+  * Build-depend on texi2html, Closes: #133699
+
+ -- Camm Maguire <camm@enhanced.com>  Wed, 13 Feb 2002 16:22:35 -0500
+
+gcl (2.5.0.cvs-2) unstable; urgency=medium
+
+  * Put in versioned dependency on binutils for libbfd support, rebuilt
+    with latest binutils, Closes: #133004
+
+ -- Camm Maguire <camm@enhanced.com>  Tue, 12 Feb 2002 13:19:12 -0500
+
+gcl (2.5.0.cvs-1) unstable; urgency=medium
+
+  * Latest patches from CVS, enabling libbfd relocations, among other
+    things
+  * /etc/emacs/site-start.d/50gcl.el as conffile, Closes: #132137
+  * limited arm and m68k support
+
+ -- Camm Maguire <camm@enhanced.com>  Mon,  4 Feb 2002 09:32:29 -0500
+
+gcl (2.5.0-1) unstable; urgency=medium
+
+  * New maintainer
+  * New upstream release
+  * New release so far builds only on i386, Closes: #116070, Closes:
+    #123371
+  * New release so far builds only on i386, Closes: #115041
+  * Gcl must currently use its own copy of gmp, as the upstream version
+    of gmp uses malloc, which interferes with gcl's garbage collection
+    and relocation scheme.  The change from malloc to alloca has been
+    suggested to upstream gmp developers. Closes: #108910
+  * Tcl/Tk support now in. Closes: #113197
+
+ -- Camm Maguire <camm@enhanced.com>  Fri, 21 Dec 2001 00:03:43 -0500
+
+gcl (2.4.0-3) unstable; urgency=medium
+
+  * Make gcl use libgmp3 package. (closes: #108910)
+  * Remove tk support. (closes: #108909)
+  * Fix stupid missing dependency line. (closes: #108907, #108908)
+  * Removed readme.mingw from the debian package, this package is not compiled under
+    mingw (windows gcc port).
+  * Close ITA bug. (closes: #112312)
+
+ -- Baruch Even <baruch@debian.org>  Sat, 22 Sep 2001 00:27:14 +0300
+
+gcl (2.4.0-2) unstable; urgency=low
+
+  * Change tclsh Build-Depends to tcl8.0 because apt is broken. (closes: #99261)
+
+ -- JP Sugarbroad <taral@taral.net>  Wed, 30 May 2001 14:34:53 -0500
+
+gcl (2.4.0-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- JP Sugarbroad <taral@taral.net>  Sun, 13 May 2001 20:31:01 -0500
+
+gcl (2.3.7+beta3-3) unstable; urgency=low
+
+  * Move gcl-doc to section doc (closes: #78666)
+
+ -- JP Sugarbroad <taral@taral.net>  Sun, 13 May 2001 20:26:28 -0500
+
+gcl (2.3.7+beta3-2) unstable; urgency=low
+
+  * Remove alpha from arch list
+  * Move tcl/tk from Depends to Suggests
+
+ -- JP Sugarbroad <taral@taral.net>  Fri,  4 May 2001 16:24:11 -0500
+
+gcl (2.3.7+beta3-1) unstable; urgency=low
+
+  * New maintainer
+  * Repackaged with debhelper (closes: #42045, #86097, #91475, #91478)
+  * New upstream release (closes: #59577, #71096)
+  * Added sparc+alpha, removed m68k (closes: #87407)
+
+ -- JP Sugarbroad <taral@taral.net>  Mon, 30 Apr 2001 19:07:49 -0500
+
+gcl (2.2.1-6) unstable; urgency=low
+
+  * Disable stripping of "saved_gcl" binary. (#45778)
+
+ -- Steve Dunham <dunham@debian.org>  Fri, 24 Sep 1999 14:39:15 -0400
+
+gcl (2.2.1-5) unstable; urgency=low
+
+  * Fix m68k build
+
+ -- Steve Dunham <dunham@debian.org>  Tue,  6 Jul 1999 09:45:09 -0400
+
+gcl (2.2.1-4) unstable; urgency=low
+
+  * Fix bug #31718
+
+ -- Steve Dunham <dunham@debian.org>  Fri,  2 Jul 1999 11:11:12 -0400
+
+gcl (2.2.1-3) unstable; urgency=low
+
+  * Add m68k patches
+
+ -- Steve Dunham <dunham@debian.org>  Wed, 16 Dec 1998 14:25:46 -0500
+
+gcl (2.2.1-2) unstable; urgency=low
+
+  * Compile against libc6.  New maintainer.
+
+ -- Steve Dunham <dunham@cps.msu.edu>  Wed,  5 Nov 1997 10:09:12 -0500
+
+gcl (2.2.1-1) unstable; urgency=low
+
+  * New upstream release; suggests tcl76, tk42.
+  * gcl-doc contains gcl-si and gcl-tk info pages.
+  * debian/rules: clean target removes temporary files from h and o
+    subdirectories (bug #5984).
+
+ -- Karl Sackett <krs@debian.org>  Fri, 3 Jan 1997 10:16:40 -0600
+
+gcl (2.2-5) unstable; urgency=low
+
+  * Converted package to 2.1.1.0 standard.
+  * Stripped gcltkaux (bug #5074).
+  * gcl-si and gcl-tk info pages converted to HTML.
+
+ -- Karl Sackett <krs@debian.org>  Tue, 5 Nov 1996 13:30:30 -0600
+
+2.2-4
+        * add-defs: patched locates for tk.tcl, init.tcl 
+        * gcl-tk/tkAppInit.c: patched for tk4.1 support
+        * gcl-tk/tkMain.c: patched for tk4.1 support
+2.2-3
+        * Debian support files now partily architecture independent.
+          There are, however, no add-defs files except for 386-linux.
+        * Rebuilt package to correct corrupted upload problem.
+2.2-2
+        * Removed tk support from distribution.  This was written to
+          use tk-3.6 and doesn't support tk-4.0 or tk-4.1.  I am not aware
+          of any plans to upgrade the code. (Closes bug #2865)
+2.2-1
+        * Added Debian support files
+        * h/386-linux.defs: set OFLAG = -O2
+        * h/386-linux.h: undid patch that swaped signal.h for sigcontext.h
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..0c1124b
--- /dev/null
@@ -0,0 +1,82 @@
+Source: gcl27
+Section: lisp
+Priority: optional
+Maintainer: Camm Maguire <camm@debian.org>
+Homepage: http://gnu.org/software/gcl
+Build-Depends: debhelper-compat (= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo, texlive-latex-extra, texlive-fonts-recommended, libtirpc-dev, binutils-dev
+Build-Depends-Indep: dh-elpa
+Standards-Version: 4.5.0
+
+Package: gcl27
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ucf, libtirpc-dev
+Suggests: gcl27-doc
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains the Lisp system itself.  Documentation 
+ is provided in the gcl-doc package.
+
+Package: gcl27-tk
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, gcl27 (>= ${source:Version})
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains a graphical interface based on the popular
+ TCL/TK toolkit.
+
+Package: elpa-gcl27
+Architecture: all
+Depends: gcl27 (>= ${source:Version}), emacs-gtk | emacsen, ${misc:Depends}
+Section: lisp
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains an emacs interface to GCL.
+
+Package: gcl27-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Multi-Arch: foreign
+Description: Documentation for GNU Common Lisp
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains documentation in info format of the
+ system internals.
+
+Package: gcl27-tk-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Multi-Arch: foreign
+Description: Documentation for GNU Common Lisp
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains documentation in info format of the
+ graphical interface currently implemented in Tcl/Tk.
diff --git a/debian/control_ b/debian/control_
new file mode 100644 (file)
index 0000000..48ac25b
--- /dev/null
@@ -0,0 +1,39 @@
+Source: gcl
+Section: lisp
+Priority: optional
+Maintainer: Camm Maguire <camm@debian.org>
+Homepage: http://gnu.org/software/gcl
+Build-Depends: debhelper (>= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo
+Standards-Version: 4.5.0
+
+Package: gcl
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, emacs | emacsen, ucf
+Breaks: emacsen-common (<< 2.0.0)
+Suggests: gcl-doc
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains the Lisp system itself.  Documentation 
+ is provided in the gcl-doc package.
+
+Package: gcl-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Description: Documentation for GNU Common Lisp
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains Documentation in info format of both the
+ system internals, as well as the graphical interface currently
+ implemented in Tcl/Tk.
diff --git a/debian/control_27 b/debian/control_27
new file mode 100644 (file)
index 0000000..0c1124b
--- /dev/null
@@ -0,0 +1,82 @@
+Source: gcl27
+Section: lisp
+Priority: optional
+Maintainer: Camm Maguire <camm@debian.org>
+Homepage: http://gnu.org/software/gcl
+Build-Depends: debhelper-compat (= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo, texlive-latex-extra, texlive-fonts-recommended, libtirpc-dev, binutils-dev
+Build-Depends-Indep: dh-elpa
+Standards-Version: 4.5.0
+
+Package: gcl27
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ucf, libtirpc-dev
+Suggests: gcl27-doc
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains the Lisp system itself.  Documentation 
+ is provided in the gcl-doc package.
+
+Package: gcl27-tk
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, gcl27 (>= ${source:Version})
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains a graphical interface based on the popular
+ TCL/TK toolkit.
+
+Package: elpa-gcl27
+Architecture: all
+Depends: gcl27 (>= ${source:Version}), emacs-gtk | emacsen, ${misc:Depends}
+Section: lisp
+Description: GNU Common Lisp compiler
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains an emacs interface to GCL.
+
+Package: gcl27-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Multi-Arch: foreign
+Description: Documentation for GNU Common Lisp
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains documentation in info format of the
+ system internals.
+
+Package: gcl27-tk-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Multi-Arch: foreign
+Description: Documentation for GNU Common Lisp
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains documentation in info format of the
+ graphical interface currently implemented in Tcl/Tk.
diff --git a/debian/control_cvs b/debian/control_cvs
new file mode 100644 (file)
index 0000000..ee7f6e1
--- /dev/null
@@ -0,0 +1,39 @@
+Source: gclcvs
+Section: lisp
+Priority: optional
+Maintainer: Camm Maguire <camm@debian.org>
+Homepage: http://gnu.org/software/gcl
+Build-Depends: debhelper (>= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, gcc-11
+Standards-Version: 4.5.0
+
+Package: gclcvs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, emacs | emacsen, ucf
+Breaks: emacsen-common (<< 2.0.0)
+Suggests: gclcvs-doc
+Description: GNU Common Lisp compiler, CVS snapshot
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains the Lisp system itself.  Documentation 
+ is provided in the gclcvs-doc package.
+
+Package: gclcvs-doc
+Section: doc
+Architecture: all
+Conflicts: gclinfo
+Replaces: gclinfo
+Depends: dpkg (>= 1.15.4), ${misc:Depends}
+Description: Documentation for GNU Common Lisp, CVS snapshot
+ GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
+ implemented in C, and complying mostly with the standard set 
+ forth in the book "Common Lisp, the Language I".  It attempts
+ to strike a useful middle ground in performance and portability
+ from its design around C.
+ .
+ This package contains Documentation in info format of both the
+ system internals, as well as the graphical interface currently
+ implemented in Tcl/Tk.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..fd70c5a
--- /dev/null
@@ -0,0 +1,97 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: *
+Copyright: 1989 The University of Texas at Austin,William F. Schelter
+          1989 Free Software Foundation
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: cmpnew/*
+Copyright: 1989 The University of Texas at Austin,William F. Schelter
+          1994 M. Hagiya,T. Yuasa,William F. Schelter
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: elisp/*
+Copyright: 1994,1998 William F. Schelter
+          1985-1988 Free Software Foundation
+License: GPL-2
+
+Files: gcl-tk/*
+Copyright: 1994 Rami el Charif,William F. Schelter
+          1996 Sun Microsystems
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: h/*
+Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: debian/*
+Copyright: 2024 Camm Maguire
+License: GPL-2
+
+Files: ansi-tests/*
+Copyright: 2004 Paul Dietz
+License: LGPL-2
+
+Files: ansi-tests/rt.lsp
+Copyright: 1990 Massachusetts Institute of Technology
+License: public-domain
+
+Files: info/*
+Copyright: 1994 William F. Schelter
+License: GPL-2
+
+Files: lsp/*
+Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter
+          1985,1986,1989,1990 William F. Schelter
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: mod/gcl_defpackage.lsp
+Copyright: 1990,1991 lsp The Boeing Company
+          2024 Camm Maguire
+License: public-domain
+
+Files: o/*
+Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter,Rami el Charif
+          1991 William F. Schelter
+          1985-1994 Free Software Foundation
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: o/gcl_readline.d
+Copyright: 2000 Tuukka Toivonen
+          2024 Camm Maguire
+License: LGPL-2
+
+Files: pcl/*
+Copyright: 1985-1990 Xerox Corporation
+          1990 Franz Inc.
+          2024 Camm Maguire
+License: public-domain
+
+Files: xgcl-2/*
+Copyright: 1987 Digital Equipment Corporation,Massachusetts Institute of Technology
+          1994 Hiep Huu Nguyen,William F. Schelter,The University of Texas at Austin
+          1994,1995,1996,2006,2007,2008,2010 Gordon S. Novak Jr.,The University of Texas at Austin
+          1992 The University of Texas at Austin
+          1989 Free Software Foundation
+          2006 Hiep Huu Nguyen
+          2024 Camm Maguire
+License: GPL-2
+
+License: GPL-2
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License Version 2 can be found in
+ /usr/share/common-licenses/GPL-2.
+
+License: LGPL-2
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License Version 2 can be found in
+ /usr/share/common-licenses/LGPL-2.
+
+License: public-domain
+ All permissions granted.
diff --git a/debian/debian-autoloads.el b/debian/debian-autoloads.el
new file mode 100644 (file)
index 0000000..ebf323f
--- /dev/null
@@ -0,0 +1,4 @@
+;;;###autoload
+(autoload 'run "gcl" "" t)
+;;;###autoload
+(autoload 'dbl "dbl" "" t)
diff --git a/debian/gcl-pkg.el.in b/debian/gcl-pkg.el.in
new file mode 100644 (file)
index 0000000..2dfc613
--- /dev/null
@@ -0,0 +1,3 @@
+
+(define-package "gcl@EXT@" "@VR@"
+  "Emacs mode for running GCL.")
diff --git a/debian/gcl.sh b/debian/gcl.sh
new file mode 100755 (executable)
index 0000000..b172b72
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+EXT=@EXT@
+VERS=@VERS@
+
+. /etc/default/gcl$EXT
+if ! set | grep -q -w GCL_ANSI ; then GCL_ANSI=$DEFAULT_GCL_ANSI ; fi
+if ! set | grep -q -w GCL_PROF ; then GCL_PROF=$DEFAULT_GCL_PROF ; fi
+
+DIR=/usr/lib/gcl-$VERS;
+
+if [ "$GCL_ANSI" = "" ] ; then 
+    if [ "$GCL_PROF" = "" ] ; then
+       EXE=saved_gcl;
+    else
+       EXE=saved_gcl_gprof;
+    fi
+else
+    if [ "$GCL_PROF" = "" ] ; then
+       EXE=saved_ansi_gcl;
+    else
+       EXE=saved_ansi_gcl_gprof;
+    fi
+fi
+SYS=$DIR/unixport
+
+exec $SYS/$EXE -dir $SYS/ -libdir $DIR/ \
+   -eval '(setq si::*allow-gzipped-file* t)' \
+   -eval '(setq si::*tk-library* "/usr/lib/tk@TKVERS@")' \
+   -eval '(setq si::*default-info-files* (list "gcl@EXT@-si.info" "gcl@EXT@-tk.info" "gcl@EXT@.info"))' \
+     "$@"
+
+# other options: -load /tmp/foo.o -load jo.lsp -eval "(joe 3)"
diff --git a/debian/gcl27.templates b/debian/gcl27.templates
new file mode 100644 (file)
index 0000000..be351d0
--- /dev/null
@@ -0,0 +1,26 @@
+Template: gcl27/default_gcl_ansi
+Type: boolean
+_Description: Use the work-in-progress ANSI build by default?
+ GCL is in the process of providing an ANSI compliant image in addition to
+ its traditional CLtL1 image still in production use.  Please see the
+ README.Debian file for a brief description of these terms.  Setting this
+ variable will determine which image you will use by default on executing
+ 'gcl27'.  You can locally override this choice by setting the GCL_ANSI
+ environment variable to any string but "no" for the ANSI build, and to
+ "no" for the CLtL1 build, e.g. GCL_ANSI=t gcl27.  The
+ flavor of the build in force will be reported in the initial startup
+ banner.
+
+Template: gcl27/default_gcl_prof
+Type: boolean
+_Description: Use the profiling build by default?
+ GCL now has optional support for profiling via gprof.  Please see the
+ documentation
+ for si::gprof-start and si::gprof-quit for details. As this build is slower
+ than builds without gprof support, it is not recommended for final production use.
+ You can locally override the default choice made here
+ by setting the
+ GCL_PROF environment variable to any non-empty string for profiling
+ support, and to the empty string for the more optimized builds, e.g.
+ GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in
+ the initial startup banner.
diff --git a/debian/in.gcl-clc.sh b/debian/in.gcl-clc.sh
new file mode 100644 (file)
index 0000000..e91b647
--- /dev/null
@@ -0,0 +1,146 @@
+#!/bin/sh
+progname=$(basename $0)
+clc_src=/usr/share/common-lisp/source
+
+if test ! -f $clc_src/common-lisp-controller/common-lisp-controller.lisp ; then
+    echo "Cannot find common-lisp-controller." 1>&2
+    echo "Please report this as a bug." 1>&2
+    exit 1
+fi
+
+export GCL_ANSI=true
+gcl_bin=/usr/bin/gcl@EXT@ # is better than $(which gcl)
+
+command=$1
+shift
+
+build_error()
+{
+       echo "Error building $1" 1>&2
+       exit 1
+}
+
+if [ "$command" = "make-user-image" ] ; then
+    echo $progname Building image with $1 ...
+    if test ! -r $1; then 
+       echo "Trying to make user image: Cannot access file $1" 1>&2
+       exit 1
+    fi 
+    
+    $gcl_bin <<!MAKE_USER_IMAGE!
+(progn    
+  (load \"$1\") 
+  (si:save-system
+    (make-pathname :name \"gcl@EXT@_$1_image\"  :defaults (user-homedir-pathname)))
+  (quit 1))" || build_error $1
+!MAKE_USER_IMAGE!
+    test $? = 0 || build_error make-user-image
+    exit 0
+fi
+
+for PROF in n y; do
+    
+    if [ "$PROF" = "y" ] ; then
+       export GCL_PROF=t
+    else
+       export GCL_PROF=
+    fi
+
+    if [ -f $gcl_bin ] ; then
+       image=$($gcl_bin -batch -eval '(princ (namestring (merge-pathnames (make-pathname :name "saved_clc_gcl") (pathname si:*system-directory*))))'</dev/null)
+       gcl_clc=$($gcl_bin -batch -eval '(princ (namestring (make-pathname :directory (append (pathname-directory (pathname "/usr/lib/common-lisp/")) (last (pathname-directory (pathname si::*lib-directory*)))))))'</dev/null)
+    else
+       echo "Cannot find gcl." 1>&2
+       exit 1
+    fi
+
+    case $command in
+       rebuild)
+           while test -x $gcl_bin -a -n "$1"
+             do
+             echo $progname Rebuilding $1 ...
+             echo '
+               (setq *compile-print* t)
+               (setq *compile-verbose* t)
+               (setq *load-verbose* t)
+               (setq *require-verbose* t)
+               (ignore-errors (clc:compile-library (quote '"$1"'))
+                   (lisp:quit 0))
+               (lisp:quit 1)
+               ' | $gcl_bin || build_error $1
+             shift
+           done 
+           ;;
+
+       remove)
+           while test -n "$1"
+             do
+             echo $progname Removing $1
+             rm -rf "${gcl_clc}$1"
+             shift
+           done
+           ;;
+       
+       install-clc)
+           if ! [ -e /etc/default/$(basename $gcl_bin) ] ; then
+               echo $(basename $gcl_bin) not configured, aborting
+               exit 5
+           fi
+           echo $progname Uninstalling clc image and purging object cache ...
+           test -x $gcl_bin || {
+               echo "Cannot install as there is no GCL"
+               exit -1
+           }
+           rm -rf $gcl_clc
+           mkdir -p $gcl_clc
+#          chown cl-builder.cl-builder $gcl_clc
+           
+           rm -f $image
+
+           echo $progname Installing clc as $image ...
+           if test -x $gcl_bin; then
+               $gcl_bin <<!INSTALL_CLC!
+(in-package :common-lisp-user)
+(load "$clc_src/common-lisp-controller/common-lisp-controller.lisp")
+
+(in-package :common-lisp-controller)
+(init-common-lisp-controller-v4 "$(basename $gcl_clc)")
+
+(when (probe-file "/etc/lisp-config.lisp")
+  (load "/etc/lisp-config.lisp"))
+
+(si:save-system "$image"))
+!INSTALL_CLC!
+               test $? = 0 || build_error send-clc-command
+           fi
+           ;;
+
+       remove-clc)
+           echo $progname Uninstalling clc and restoring pristine orig image ...
+           rm -f $image
+           ;;
+       
+       purge-clc)
+           echo $progname Uninstalling clc image and purging object cache ...
+           rm -f $image
+           rm -rf $gcl_clc
+           ;;
+
+       *)
+           expr $command : '.*\(help\).*' > /dev/null 2>&1 || \
+               echo "$progname: Unknown command '$command'" 1>&2
+           echo "Usage: $progname <command>" 1>&2 
+           echo "Where <command> is one of:" 1>&2
+           echo "  install-clc, remove-clc," 1>&2
+           echo "  rebuild <package>*, remove <package>*," 1>&2
+           echo "  or make-user-image <load-file>" 1>&2
+           echo "And <package> is a cl-debpkg (e.g. cl-rt)" 1>&2
+           echo "  with a defsystem/asdf definition." 1>&2
+           exit 1
+           ;;
+    esac
+    
+done
+
+exit 0
diff --git a/debian/in.gcl-doc.README.Debian b/debian/in.gcl-doc.README.Debian
new file mode 100644 (file)
index 0000000..b8d01a6
--- /dev/null
@@ -0,0 +1,9 @@
+New in 2.6.2
+------------
+
+The gcl.texi files and the resulting html, info, and pdf outputs have
+been removed pending an enquiry into the copyright and license status
+of the dpANS documents upon which they are presumably based.
+
+
+ -- Camm Maguire <camm@debian.org>, Fri,  9 May 2014 19:08:59 +0000
diff --git a/debian/in.gcl-doc.doc-base.main b/debian/in.gcl-doc.doc-base.main
new file mode 100644 (file)
index 0000000..fa8c869
--- /dev/null
@@ -0,0 +1,15 @@
+Document: gcl@EXT@-doc
+Title: GNU Common Lisp Documentation
+Author: W. Schelter
+Abstract: A Common Lisp compiler and interpreter based on C
+Section: Programming
+
+Format: DVI
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.dvi.gz
+
+Format: PDF
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/gcl@EXT@/gcl@EXT@.html/index.html
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.html/*.html
diff --git a/debian/in.gcl-doc.doc-base.si b/debian/in.gcl-doc.doc-base.si
new file mode 100644 (file)
index 0000000..7760ae1
--- /dev/null
@@ -0,0 +1,15 @@
+Document: gcl@EXT@-si-doc
+Title: GNU Common Lisp Documentation -- System Internals 
+Author: W. Schelter
+Abstract: Documentation on GCL-specific Lisp system functions
+Section: Programming
+
+Format: DVI
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.dvi.gz
+
+Format: PDF
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.html/index.html
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.html/*.html
diff --git a/debian/in.gcl-doc.doc-base.xgcl b/debian/in.gcl-doc.doc-base.xgcl
new file mode 100644 (file)
index 0000000..447671a
--- /dev/null
@@ -0,0 +1,15 @@
+Document: gcl@EXT@-xgcl-doc
+Title: GNU Common Lisp Documentation -- System Internals 
+Author: W. Schelter
+Abstract: Documentation on GCL-specific Lisp system functions
+Section: Programming
+
+Format: DVI
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.dvi.gz
+
+Format: PDF
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html/index.html
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html/*.html
diff --git a/debian/in.gcl-doc.docs b/debian/in.gcl-doc.docs
new file mode 100644 (file)
index 0000000..e845566
--- /dev/null
@@ -0,0 +1 @@
+README
diff --git a/debian/in.gcl-doc.info b/debian/in.gcl-doc.info
new file mode 100644 (file)
index 0000000..9b70ccb
--- /dev/null
@@ -0,0 +1,3 @@
+debian/tmp/usr/share/info/gcl@EXT@-si.info*
+debian/tmp/usr/share/info/gcl@EXT@.info*
+debian/tmp/usr/share/info/gcl@EXT@-dwdoc.info*
diff --git a/debian/in.gcl-doc.install b/debian/in.gcl-doc.install
new file mode 100644 (file)
index 0000000..b7b65ae
--- /dev/null
@@ -0,0 +1,9 @@
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.dvi
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.html
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.pdf
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.dvi
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.html
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.pdf
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.dvi
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html
+debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.pdf
diff --git a/debian/in.gcl-tk-doc.doc-base.tk b/debian/in.gcl-tk-doc.doc-base.tk
new file mode 100644 (file)
index 0000000..880e51f
--- /dev/null
@@ -0,0 +1,15 @@
+Document: gcl@EXT@-tk-doc
+Title: GNU Common Lisp Tk Interface Documentation
+Author: W. Schelter
+Abstract: Documentation for Graphical Interface to GCL using TCL/Tk
+Section: Programming
+
+Format: DVI
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk*.dvi.gz
+
+Format: PDF
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk*.pdf.gz
+
+Format: HTML
+Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk.html/index.html
+Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk.html/*.html
diff --git a/debian/in.gcl-tk-doc.info b/debian/in.gcl-tk-doc.info
new file mode 100644 (file)
index 0000000..a46a498
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/info/gcl@EXT@-tk.info*
diff --git a/debian/in.gcl-tk-doc.install b/debian/in.gcl-tk-doc.install
new file mode 100644 (file)
index 0000000..82087da
--- /dev/null
@@ -0,0 +1,4 @@
+debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.dvi
+debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.html
+debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.pdf
+debian/tmp/usr/share/doc/gcl@EXT@/gcl-tk
diff --git a/debian/in.gcl-tk.install b/debian/in.gcl-tk.install
new file mode 100644 (file)
index 0000000..e7adf46
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/lib/gcl-@VERS@/gcl-tk
diff --git a/debian/in.gcl-tk.lintian-overrides b/debian/in.gcl-tk.lintian-overrides
new file mode 100644 (file)
index 0000000..3f00755
--- /dev/null
@@ -0,0 +1,2 @@
+# FIXME
+gcl@EXT@-tk: hardening-no-pie [usr/lib/gcl-@VERS@/gcl-tk/gcltkaux]
diff --git a/debian/in.gcl.1 b/debian/in.gcl.1
new file mode 100644 (file)
index 0000000..5f92f04
--- /dev/null
@@ -0,0 +1,242 @@
+.TH GCL 1L "17 March 1997"
+.SH NAME
+gcl@EXT@ \- GCL Common Lisp interpreter/compiler
+.SH SYNOPSIS
+.B gcl@EXT@
+[
+.B options
+]
+
+.SH DESCRIPTION
+
+The program
+.I gcl@EXT@
+is an implementation of a subset of the Common Lisp Ansi standard.
+It is written in C and in Common Lisp, and is highly portable.   It
+includes those features in the original definition of Common Lisp,
+(Guy Steele version 1.), as well as some features from the proposed
+new standard.
+.LP
+The best documentation is available in
+.I texinfo/info
+form, with there being three groups of information.
+.I gcl@EXT@-si
+for basic common lisp descriptions, and features unique to
+.I gcl@EXT@
+The
+.I gcl@EXT@-tk
+info refers to the connection with
+.I tk
+window system, allowing all the power of the
+.I tcl/tk
+interaction system to be used from lisp.
+The third info file
+.I gcl@EXT@
+details the Ansi standard for common lisp, to which this subset
+tries to adhere.   It is highly recommended to write programs,
+which will be in the intersection of gcl and ansi common lisp.
+Unfortunately the Ansi standard is huge, and will require a substantial
+effort, and increase in the size of gcl, to include all of it.
+.LP
+When
+.I gcl@EXT@
+is invoked from the shell, the variable
+.I si::*command-args*
+is set to the list of command line arguments.
+Various
+.I options
+are understood:
+.TP
+.BR \-eval\ command 
+.RB
+Call read and then eval on the
+.I command passed in.
+.TP
+.BR \-load\ pathname
+.RB
+Load the file whose
+.I pathname
+is specified after
+.BR \-load .
+.TP
+.B \-f
+Replace si::*command-args* by the the list starting after
+.BR \-f .
+Open the file following
+.BR \-f  for input, skip the first line, and
+then read and eval the rest of the forms in the file.   This can
+be used as with the shells to write small shell programs:
+
+.LP
+.br
+#!/usr/local/bin/gcl.exe -f
+.br
+(format t "hello world ~a~%" (nth 1 si::*command-args*))
+
+.BR
+The value
+.I si::*command-args*
+will have the appropriate value.
+Thus if the above 2 line file is made executable and called
+.I foo
+then
+
+.LP
+.LP
+.br
+tutorial% foo billy
+.br
+hello world billy
+
+.BR
+NOTE:  On many systems (eg SunOs) the first line of an executable
+script file such as:
+.BR
+#!/usr/local/bin/gcl.exe -f
+only reads the first 32 characters!   So if your pathname where
+the executable together with the '-f' amount to more than 32
+characters the file will not be recognized.   Also the executable
+must be the actual large binary file, [or a link to it], and not
+just a
+.I /bin/sh
+script.   In latter case the
+.I /bin/sh
+interpreter would get invoked on the file.
+
+Alternately one could invoke the file
+.I foo
+without making it
+executable:
+.LP
+.LP
+.br
+tutorial% gcl@EXT@ -f foo "from bill"
+.br
+hello world from bill
+
+.TP
+.B \-batch
+.RB
+Do not enter the command print loop.  Useful if the other command
+line arguments do something.  Do not print the License and
+acknowledgement information.  Note if your program does print any
+License information, it must print the GCL header information also.
+
+.TP
+.B \-dir
+.RB
+Directory where the executable binary that is running is located.
+Needed by save and friends.  This gets set as
+si::*system-directory*
+
+.TP
+.B \-libdir
+.RB
+.BR \-libdir
+.I /d/wfs/gcl-2.0/
+.RB
+
+would mean that the files like gcl-tk/tk.o would be found by
+concatting the path to the libdir path, ie in
+.RB /d/wfs/gcl-2.0/gcl-tk/tk.o
+
+.TP
+.B \-compile
+.RB
+Invoke the compiler on the filename following
+.BR \-compile.
+Other flags affect compilation.
+
+.TP
+.B \-o-file
+.RB
+If nil follows
+.BR \-o-file
+then do not produce an
+.I .o
+file.
+
+.TP
+.B \-c-file
+.RB
+If
+.BR \-c-file
+is specified, leave the intermediate
+.I .c
+file there.
+
+.TP
+.B \-h-file
+.RB     If
+.BR \-h-file
+is specified, leave the intermediate
+.I .h
+file there.
+
+.TP
+.B \-data-file
+.RB     If
+.BR \-data-file
+is specified, leave the intermediate
+.I .data
+file
+there.
+
+.TP
+.B \-system-p
+.RB     If
+.BR \-system-p
+is specified then invoke
+.I compile-file
+with the
+.I :system-p t
+keyword argument, meaning that the C init function
+will bear a name based on the name of the file, so that it may be
+invoked by name by C code.
+
+
+
+
+This GNU package should not be confused with the proprietary program
+distributed by FRANZ, Inc.  Nor should it be confused with any public
+domain or proprietary lisp system.  
+
+For anything other than program development, use of the lisp compiler
+is strongly recommended in preference to use of the interpreter, due
+to much higher speed.
+.\".LP
+.\"This program may be used in conjunction with the UCSF
+.\".I batchqueue
+.\"system.
+.\".SH "LOCAL ACCESS"
+.\"Locally, access to all L\s-2ISP\s0 systems is made through a shared
+.\"interactive front-end which assumes that the job is be run in batch mode
+.\"unless the \fB\-i\fP option is activated, which starts an interactive session.
+.\"Interactive sessions are limited to 30 cpu minutes.
+.SH FILES
+.TP
+\fI/usr/bin/gcl
+executable shell script wrapper
+.TP
+\fI/usr/lib/gcl-version/unixport/saved[_flavor]_gcl
+executable lisp images
+.SH "SEE ALSO"
+.sp
+\fICommon LISP: The Language\fP, Guy L. Steele, Jr., Digital Press, Bedford, MA,
+1984.
+.sp
+\fICommon LISPcraft\fP, Robert Wilensky, W. W. Norton & Co., New York, 1984.
+.SH AUTHORS
+
+The GCL system contains C and Lisp source files to build a Common Lisp
+sytem.  
+CGL is derived from Kyoto Common LISP (\fIkcl\fP),
+which was written in 1984 by T. Yuasa and M. Hagiya
+(working under Professor R. Nakajima at the Research
+Institute for Mathematical Sciences, Kyoto University).
+The AKCL system work was begun in 1987 by
+William Schelter at the University of Texas, Austin,  and continued through 1994.  
+In 1994 AKCL was released as GCL (GNU Common Lisp) under the
+GNU public library license.
+.\"
+
diff --git a/debian/in.gcl.config b/debian/in.gcl.config
new file mode 100644 (file)
index 0000000..3893a50
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+CONFIGFILE=/etc/default/gcl@EXT@
+set -e
+. /usr/share/debconf/confmodule
+
+db_set gcl@EXT@/default_gcl_ansi true
+
+# Load config file, if it exists.
+if [ -e $CONFIGFILE ]; then
+    . $CONFIGFILE || true
+
+    # Store values from config file into
+    # debconf db.
+    db_set gcl@EXT@/default_gcl_ansi $DEFAULT_GCL_ANSI
+    db_set gcl@EXT@/default_gcl_prof $DEFAULT_GCL_PROF
+fi
+
+# Ask questions.
+db_input medium gcl@EXT@/default_gcl_ansi || true
+db_input medium gcl@EXT@/default_gcl_prof || true
+db_go || true
diff --git a/debian/in.gcl.docs b/debian/in.gcl.docs
new file mode 100644 (file)
index 0000000..32ace0e
--- /dev/null
@@ -0,0 +1 @@
+sb_ansi-tests/test_results
diff --git a/debian/in.gcl.install b/debian/in.gcl.install
new file mode 100644 (file)
index 0000000..b46b414
--- /dev/null
@@ -0,0 +1,9 @@
+debian/tmp/usr/bin
+debian/tmp/usr/share/man
+debian/tmp/usr/lib/gcl-@VERS@/clcs
+debian/tmp/usr/lib/gcl-@VERS@/cmpnew
+debian/tmp/usr/lib/gcl-@VERS@/h
+debian/tmp/usr/lib/gcl-@VERS@/lsp
+debian/tmp/usr/lib/gcl-@VERS@/pcl
+debian/tmp/usr/lib/gcl-@VERS@/unixport
+debian/tmp/usr/lib/gcl-@VERS@/xgcl-2
diff --git a/debian/in.gcl.lintian-overrides b/debian/in.gcl.lintian-overrides
new file mode 100644 (file)
index 0000000..cfc4ddc
--- /dev/null
@@ -0,0 +1,10 @@
+gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl_gprof]
+gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_gcl_gprof]
+gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl]
+gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_gcl]
+gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl_gprof]
+gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_gcl_gprof]
+gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl]
+gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_gcl]
+gcl@EXT@: hardening-no-relro [usr/lib/gcl-@VERS@/unixport/libboot.so]
+gcl@EXT@: shared-library-lacks-prerequisites [usr/lib/gcl-@VERS@/unixport/libboot.so]
diff --git a/debian/in.gcl.manpages b/debian/in.gcl.manpages
new file mode 100644 (file)
index 0000000..0b22534
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/gcl@EXT@.1
diff --git a/debian/in.gcl.postinst b/debian/in.gcl.postinst
new file mode 100644 (file)
index 0000000..917588b
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+case "$1" in
+  configure)
+
+#      CONFIGFILE=$(tempfile -m 644)
+       CONFIGFILE=$(mktemp)
+       chmod 644 $CONFIGFILE
+       set -e
+       . /usr/share/debconf/confmodule
+       
+       if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ] ; then
+           
+           db_get gcl@EXT@/default_gcl_ansi
+           
+           if [ "$RET" = "true" ] ; then 
+               DEFAULT_GCL_ANSI=t
+           else
+               DEFAULT_GCL_ANSI=
+           fi
+           
+           db_get gcl@EXT@/default_gcl_prof
+           
+           if [ "$RET" = "true" ] ; then 
+               DEFAULT_GCL_PROF=y
+           else
+               DEFAULT_GCL_PROF=
+           fi
+           
+           echo "DEFAULT_GCL_ANSI=$DEFAULT_GCL_ANSI" >> $CONFIGFILE
+           echo "DEFAULT_GCL_PROF=$DEFAULT_GCL_PROF" >> $CONFIGFILE
+           
+       fi
+       
+       ucf --debconf-ok $CONFIGFILE /etc/default/gcl@EXT@
+       ucfr gcl@EXT@ /etc/default/gcl@EXT@
+
+#      chmod 644 /etc/default/gcl@EXT@
+       
+esac
+
+#DEBHELPER#
+
diff --git a/debian/in.gcl.postrm b/debian/in.gcl.postrm
new file mode 100644 (file)
index 0000000..5360f7d
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+    purge)
+           for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist;  do
+               rm -f /etc/default/gcl@EXT@$ext
+           done
+           
+           rm -f /etc/default/gcl@EXT@
+           
+           if which ucf >/dev/null; then
+               ucf --purge /etc/default/gcl@EXT@
+           fi        
+           if which ucfr >/dev/null; then
+               ucfr --purge gcl@EXT@ /etc/default/gcl@EXT@
+           fi       
+           ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/in.gcl.templates b/debian/in.gcl.templates
new file mode 100644 (file)
index 0000000..ccbc134
--- /dev/null
@@ -0,0 +1,26 @@
+Template: gcl@EXT@/default_gcl_ansi
+Type: boolean
+_Description: Use the work-in-progress ANSI build by default?
+ GCL is in the process of providing an ANSI compliant image in addition to
+ its traditional CLtL1 image still in production use.  Please see the
+ README.Debian file for a brief description of these terms.  Setting this
+ variable will determine which image you will use by default on executing
+ 'gcl@EXT@'.  You can locally override this choice by setting the GCL_ANSI
+ environment variable to any string but "no" for the ANSI build, and to
+ "no" for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@.  The
+ flavor of the build in force will be reported in the initial startup
+ banner.
+
+Template: gcl@EXT@/default_gcl_prof
+Type: boolean
+_Description: Use the profiling build by default?
+ GCL now has optional support for profiling via gprof.  Please see the
+ documentation
+ for si::gprof-start and si::gprof-quit for details. As this build is slower
+ than builds without gprof support, it is not recommended for final production use.
+ You can locally override the default choice made here
+ by setting the
+ GCL_PROF environment variable to any non-empty string for profiling
+ support, and to the empty string for the more optimized builds, e.g.
+ GCL_PROF=t gcl@EXT@.  If profiling is enabled, this will be reported in
+ the initial startup banner.
diff --git a/debian/msb b/debian/msb
new file mode 100644 (file)
index 0000000..6b165ae
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+set -x
+export TMPDIR=$HOME/tmp
+if [ "$4" = "" ] ; then S="b" ; else S="e"; fi
+D="r$2_$3_$S"
+
+mkdir -p $TMPDIR/$D
+
+E=""
+if [ "$S" = "e" ] ; then
+#    mkdir $TMPDIR/shuf-$D
+#    disorderfs --reverse-dirents=yes "$TMPDIR/$D" "$TMPDIR/shuf-$D"
+    sbuild --chroot-mode=unshare \
+   -d unstable \
+   --build-path=/build/gcl-$D/ \
+   --jobs=$3 \
+   --post-build-commands="%SBUILD_CHROOT_EXEC tar -c -C /build/gcl-$D/ . | tar -x -C $TMPDIR/$D/" \
+   --chroot-setup-commands="echo 'TZ=Asia/Tokyo; export TZ' >> /etc/environment" \
+   --chroot-setup-commands="echo 'LC_ALL=fr_CH.UTF-8; export LC_ALL' >> /etc/environment" \
+   --chroot-setup-commands="echo 'LANG=fr_CH.UTF-8; export LANG' >> /etc/environment" \
+   --chroot-setup-commands="echo 'USER=nobody; export USER' >> /etc/environment" \
+   --chroot-setup-commands="echo 'LOGNAME=nobody; export LOGNAME' >> /etc/environment" \
+   $1
+else   
+    sbuild --chroot-mode=unshare \
+   -d unstable \
+   --build-path=/build/gcl-$D/ \
+   --jobs=$3 \
+   --post-build-commands="%SBUILD_CHROOT_EXEC tar -c -C /build/gcl-$D/ . | tar -x -C $TMPDIR/$D/" \
+   $1
+fi
diff --git a/debian/msbe b/debian/msbe
new file mode 100644 (file)
index 0000000..de3e9e9
--- /dev/null
@@ -0,0 +1,8 @@
+export SOURCE_DATE_EPOCH=$(dpkg-parsechangelog -S Date | date -f - +%s)
+export DEB_BUILD_OPTIONS="reproducible=+all"
+export FORCE_SOURCE_DATE=1
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+export TZ=UTC
+export USER=nobody
+export LOGNAME=nobody
diff --git a/debian/old.in.gcl-doc.doc-base.main b/debian/old.in.gcl-doc.doc-base.main
new file mode 100644 (file)
index 0000000..2d6f3d1
--- /dev/null
@@ -0,0 +1,12 @@
+Document: gcl@EXT@-doc
+Title: GNU Common Lisp Documentation
+Author: W. Schelter
+Abstract: A Common Lisp compiler and interpreter based on C
+Section: Apps/Programming
+
+Format: DVI
+Files: /usr/share/doc/gcl@EXT@-doc/gcl.dvi.gz /usr/share/doc/gcl@EXT@-doc/gcl.dvi
+
+Format: HTML
+Index: /usr/share/doc/gcl@EXT@-doc/gcl/index.html
+Files: /usr/share/doc/gcl@EXT@-doc/gcl/*.html
diff --git a/debian/patches/Version_2_7_2ore3 b/debian/patches/Version_2_7_2ore3
new file mode 100644 (file)
index 0000000..5995e41
--- /dev/null
@@ -0,0 +1,1172 @@
+Description: Update to git tag Version_2_7_2pre3
+ Git tag update
+Forwarded: not-needed
+Author: Camm Maguire <camm@debian.org>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -23,7 +23,7 @@ gcltkdocdir=$(docdir)/gcl-tk
+ # primaries
+-noinst_PROGRAMS=bin/dpp o/grab_defs
++noinst_PROGRAMS=bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT)
+ noinst_LIBRARIES=lib/libbase_gcl.a
+ my_unixport_PROGRAMS=unixport/saved_gcl unixport/saved_ansi_gcl
+@@ -31,7 +31,7 @@ my_unixport_LIBRARIES=unixport/libgcl.a
+ bin_SCRIPTS=bin/gcl
+ check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results
+ info_TEXINFOS=info/gcl.texi info/gcl-si.texi
+-my_unixport_DATA=$(addprefix unixport/,init_raw.lsp gcl.script libboot.so \
++my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \
+                                      gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp)
+ my_h_DATA=h/cmpinclude.h
+ my_cmpnew_DATA=sb_cmpnew/gcl_collectfn.o cmpnew/gcl_lfun_list.lsp cmpnew/gcl_cmpopt.lsp
+@@ -48,6 +48,12 @@ dist_noinst_DATA=
+ # conditionals
++if AMM_LIBBOOT
++LIBBOOTSO=unixport/libboot.so
++else
++BOOT_C=o/boot.c
++endif
++
+ if AMM_GPROF
+ LIBGPROF=lib/libgprof.a
+@@ -165,7 +171,7 @@ endif
+ BUILT_SOURCES=$(BUILT_H) $(BUILT_C)
+ CLEANFILES=$(BUILT_SOURCES) $(INI_FILES) o/boot.ini
+-lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H)
++lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C)
+ nodist_lib_libbase_gcl_a_SOURCES=$(BUILT_C)
+ lib_libgprof_a_SOURCES=o/gprof.c
+ lib_libgprof_a_CFLAGS=$(AM_CFLAGS) -fno-omit-frame-pointer -pg
+@@ -237,7 +243,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl
+ unixport/saved_%: unixport/raw_% # rebuild these only when out of date
+ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \
+-                  unixport/libboot.so unixport/init_raw.lsp
++                  $(LIBBOOTSO) unixport/init_raw.lsp
+       rm -rf sb_$* # FIXME sandbox ugliness for parallel builds
+       mkdir sb_$*
+       cd sb_$* && \
+@@ -245,14 +251,17 @@ unixport/saved_%: | unixport/raw_% unixp
+               ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \
+               mkdir h && \
+               ln -snf ../../h/cmpinclude.h h/ && \
+-              echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \
++              touch prof_init.lsp && \
++              ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \
++              echo "(system:save-system \"../$@\")" | \
++              cat ../unixport/init_raw.lsp prof_init.lsp - | \
+                       GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
+                               ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
+               rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
+       rm -rf sb_$*
+-unixport/raw_%: unixport/lib%.a
+-      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
++unixport/raw_%: unixport/lib%.a $(FF) $(LF)
++      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -464,15 +473,15 @@ o/boot.h: %.h: %.ini
+       cat $< >> $@
+       echo '}' >> $@
+-CLEANFILES+=unixport/libboot.so
+-unixport/libboot.so: o/boot.c o/boot.h
++CLEANFILES+=$(LIBBOOTSO)
++$(LIBBOOTSO): o/boot.c o/boot.h
+       $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
+               -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@
+ o/boot.ini: CPPFLAGS += -DNO_BOOT_H
+ # parallel builds can only have one target accessing an intermediate file
+ # solved with BUILT_SOURCES
+-o/%.ini:  o/%.c | o/grab_defs
++o/%.ini:  o/%.c | o/grab_defs$(EXEEXT)
+       @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+       @rm -f new_$(@F)
+@@ -540,8 +549,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_co
+       [ -d $(@D) ] || mkdir -p $(@D)
+       $(word 1,$|) -compile $< -o $@
+-%.c: %.d | bin/dpp
+-      bin/dpp $< $@
++%.c: %.d | bin/dpp$(EXEEXT)
++      $| $< $@
+ gcl-tk/demos gcl-tk $(MY_DIRS): % :
+       [ -d $@ ] || mkdir -p $@
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -93,7 +93,6 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT)
+ my_unixport_PROGRAMS = unixport/saved_gcl$(EXEEXT) \
+       unixport/saved_ansi_gcl$(EXEEXT) $(am__EXEEXT_1)
+ @AMM_GPROF_TRUE@am__append_1 = $(LIBGPROF) lib/libbase_gcl_gprof.a
+@@ -176,6 +175,56 @@ am__v_AR_1 =
+ lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS)
+ lib_libbase_gcl_a_RANLIB = $(RANLIB)
+ lib_libbase_gcl_a_LIBADD =
++am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \
++      o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \
++      o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \
++      o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \
++      o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \
++      o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \
++      o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \
++      o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \
++      o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \
++      o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \
++      o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \
++      o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \
++      o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \
++      o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \
++      h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \
++      h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \
++      h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \
++      h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \
++      h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \
++      h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
++      h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
++      o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
++      h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \
++      h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \
++      h/cmponly_last.h h/elf32_armhf_reloc.h \
++      h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \
++      h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \
++      h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \
++      h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
++      h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \
++      h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \
++      h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \
++      h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \
++      h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \
++      h/elf64_loongarch64_reloc.h \
++      h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \
++      h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \
++      h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \
++      h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \
++      h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \
++      h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \
++      h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \
++      h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \
++      h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \
++      h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \
++      h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \
++      h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \
++      h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \
++      h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \
++      h/solaris-i386.h o/boot.c
+ am__dirstamp = $(am__leading_dot)dirstamp
+ am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \
+       o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \
+@@ -202,20 +251,71 @@ am__objects_1 = o/typespec.$(OBJEXT) o/a
+       o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \
+       o/mapfun.$(OBJEXT)
+ am__objects_2 =
++@AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT)
+ am_lib_libbase_gcl_a_OBJECTS = $(am__objects_1) $(am__objects_2) \
+-      $(am__objects_2) $(am__objects_2)
+-am__objects_3 = o/character.$(OBJEXT) o/file.$(OBJEXT) \
++      $(am__objects_2) $(am__objects_2) $(am__objects_3)
++am__objects_4 = o/character.$(OBJEXT) o/file.$(OBJEXT) \
+       o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \
+       o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \
+       o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \
+       o/symbol.$(OBJEXT) o/new_init.$(OBJEXT)
+-nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_3)
++nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4)
+ lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \
+       $(nodist_lib_libbase_gcl_a_OBJECTS)
+ lib_libbase_gcl_gprof_a_AR = $(AR) $(ARFLAGS)
+ lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB)
+ lib_libbase_gcl_gprof_a_LIBADD =
+-am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \
++am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \
++      o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \
++      o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \
++      o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \
++      o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \
++      o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \
++      o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \
++      o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \
++      o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \
++      o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \
++      o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \
++      o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \
++      o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \
++      o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \
++      h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \
++      h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \
++      h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \
++      h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \
++      h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \
++      h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
++      h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
++      o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
++      h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \
++      h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \
++      h/cmponly_last.h h/elf32_armhf_reloc.h \
++      h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \
++      h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \
++      h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \
++      h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
++      h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \
++      h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \
++      h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \
++      h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \
++      h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \
++      h/elf64_loongarch64_reloc.h \
++      h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \
++      h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \
++      h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \
++      h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \
++      h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \
++      h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \
++      h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \
++      h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \
++      h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \
++      h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \
++      h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \
++      h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \
++      h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \
++      h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \
++      h/solaris-i386.h o/boot.c o/gprof.c
++am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \
+@@ -281,11 +381,13 @@ am__objects_4 = o/lib_libbase_gcl_gprof_
+       o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT)
+-am__objects_5 = $(am__objects_4) $(am__objects_2) $(am__objects_2) \
+-      $(am__objects_2)
+-am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_5) \
++@AMM_LIBBOOT_FALSE@am__objects_6 =  \
++@AMM_LIBBOOT_FALSE@   o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT)
++am__objects_7 = $(am__objects_5) $(am__objects_2) $(am__objects_2) \
++      $(am__objects_2) $(am__objects_6)
++am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) \
+       o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT)
+-am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \
++am__objects_8 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-file.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-gcl_readline.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-hash.$(OBJEXT) \
+@@ -298,8 +400,8 @@ am__objects_6 = o/lib_libbase_gcl_gprof_
+       o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT)
+-am__objects_7 = $(am__objects_6)
+-nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7)
++am__objects_9 = $(am__objects_8)
++nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9)
+ lib_libbase_gcl_gprof_a_OBJECTS =  \
+       $(am_lib_libbase_gcl_gprof_a_OBJECTS) \
+       $(nodist_lib_libbase_gcl_gprof_a_OBJECTS)
+@@ -311,20 +413,20 @@ lib_libgprof_a_OBJECTS = $(am_lib_libgpr
+ lib_libxgcl_a_AR = $(AR) $(ARFLAGS)
+ lib_libxgcl_a_RANLIB = $(RANLIB)
+ lib_libxgcl_a_LIBADD =
+-am__objects_8 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \
++am__objects_10 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \
+       xgcl-2/XStruct-2.$(OBJEXT) xgcl-2/XStruct-4.$(OBJEXT) \
+       xgcl-2/Xutil-2.$(OBJEXT)
+-am_lib_libxgcl_a_OBJECTS = $(am__objects_8)
++am_lib_libxgcl_a_OBJECTS = $(am__objects_10)
+ lib_libxgcl_a_OBJECTS = $(am_lib_libxgcl_a_OBJECTS)
+ lib_libxgcl_gprof_a_AR = $(AR) $(ARFLAGS)
+ lib_libxgcl_gprof_a_RANLIB = $(RANLIB)
+ lib_libxgcl_gprof_a_LIBADD =
+-am__objects_9 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \
++am__objects_11 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \
+       xgcl-2/lib_libxgcl_gprof_a-general-c.$(OBJEXT) \
+       xgcl-2/lib_libxgcl_gprof_a-XStruct-2.$(OBJEXT) \
+       xgcl-2/lib_libxgcl_gprof_a-XStruct-4.$(OBJEXT) \
+       xgcl-2/lib_libxgcl_gprof_a-Xutil-2.$(OBJEXT)
+-am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_9)
++am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_11)
+ lib_libxgcl_gprof_a_OBJECTS = $(am_lib_libxgcl_gprof_a_OBJECTS)
+ unixport_libansi_gcl_a_AR = $(AR) $(ARFLAGS)
+ unixport_libansi_gcl_a_RANLIB = $(RANLIB)
+@@ -351,10 +453,10 @@ unixport_libgcl_gprof_a_OBJECTS =  \
+ bin_dpp_SOURCES = bin/dpp.c
+ bin_dpp_OBJECTS = bin/dpp.$(OBJEXT)
+ bin_dpp_LDADD = $(LDADD)
+-am__objects_10 = gcl-tk/gcltkaux-guis.$(OBJEXT) \
++am__objects_12 = gcl-tk/gcltkaux-guis.$(OBJEXT) \
+       gcl-tk/gcltkaux-tkAppInit.$(OBJEXT) \
+       gcl-tk/gcltkaux-tkMain.$(OBJEXT)
+-am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_10)
++am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_12)
+ gcl_tk_gcltkaux_OBJECTS = $(am_gcl_tk_gcltkaux_OBJECTS)
+ am__DEPENDENCIES_1 =
+ gcl_tk_gcltkaux_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@@ -400,8 +502,8 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \
+       o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \
+       o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \
+-      o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/bzero.Po \
+-      o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \
++      o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \
++      o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \
+       o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \
+       o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \
+       o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \
+@@ -422,6 +524,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \
++      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \
+@@ -554,9 +657,10 @@ SOURCES = $(lib_libbase_gcl_a_SOURCES) \
+       $(unixport_saved_ansi_gcl_gprof_SOURCES) \
+       $(unixport_saved_gcl_SOURCES) \
+       $(unixport_saved_gcl_gprof_SOURCES)
+-DIST_SOURCES = $(lib_libbase_gcl_a_SOURCES) \
+-      $(lib_libbase_gcl_gprof_a_SOURCES) $(lib_libgprof_a_SOURCES) \
+-      $(lib_libxgcl_a_SOURCES) $(lib_libxgcl_gprof_a_SOURCES) \
++DIST_SOURCES = $(am__lib_libbase_gcl_a_SOURCES_DIST) \
++      $(am__lib_libbase_gcl_gprof_a_SOURCES_DIST) \
++      $(lib_libgprof_a_SOURCES) $(lib_libxgcl_a_SOURCES) \
++      $(lib_libxgcl_gprof_a_SOURCES) \
+       $(unixport_libansi_gcl_a_SOURCES) \
+       $(unixport_libansi_gcl_gprof_a_SOURCES) \
+       $(unixport_libgcl_a_SOURCES) \
+@@ -712,6 +816,7 @@ ETAGS = @ETAGS@
+ EXEEXT = @EXEEXT@
+ EXT = @EXT@
+ EXTRA_LOBJS = @EXTRA_LOBJS@
++FF = @FF@
+ FINAL_CFLAGS = @FINAL_CFLAGS@
+ GCL_CC = @GCL_CC@
+ GMP = @GMP@
+@@ -731,6 +836,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
+ LEADING_UNDERSCORE = @LEADING_UNDERSCORE@
++LF = @LF@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LI_CC = @LI_CC@
+@@ -854,6 +960,9 @@ my_cmpnewdir = $(my_libdir)/cmpnew
+ my_clcsdir = $(my_libdir)/clcs
+ xgcl2docdir = $(docdir)/xgcl-2
+ gcltkdocdir = $(docdir)/gcl-tk
++
++# primaries
++noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT)
+ noinst_LIBRARIES = lib/libbase_gcl.a $(am__append_1) $(am__append_4) \
+       $(am__append_7)
+ my_unixport_LIBRARIES = unixport/libgcl.a unixport/libansi_gcl.a \
+@@ -862,7 +971,7 @@ bin_SCRIPTS = bin/gcl
+ check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results
+ info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \
+       $(am__append_9)
+-my_unixport_DATA = $(addprefix unixport/,init_raw.lsp gcl.script libboot.so \
++my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \
+                                      gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp)
+ my_h_DATA = h/cmpinclude.h
+@@ -879,6 +988,8 @@ lisp_DATA = elisp/add-default.el elisp/a
+ dist_noinst_DATA = $(am__append_5) $(am__append_8)
+ # conditionals
++@AMM_LIBBOOT_TRUE@LIBBOOTSO = unixport/libboot.so
++@AMM_LIBBOOT_FALSE@BOOT_C = o/boot.c
+ @AMM_GPROF_TRUE@LIBGPROF = lib/libgprof.a
+ #it would be nice someday to sandbox xgcl-2 and gcl-tk builds in tmpdirs
+@@ -968,9 +1079,8 @@ BUILT_SOURCES = $(BUILT_H) $(BUILT_C)
+ CLEANFILES = $(BUILT_SOURCES) $(INI_FILES) o/boot.ini $(addprefix \
+       unixport/raw_,gcl gcl_gprof ansi_gcl ansi_gcl_gprof) \
+       h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h \
+-      unixport/libboot.so gcl-tk/demos/index.lsp \
+-      gcl-tk/demos/gc-monitor.o
+-lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H)
++      $(LIBBOOTSO) gcl-tk/demos/index.lsp gcl-tk/demos/gc-monitor.o
++lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C)
+ nodist_lib_libbase_gcl_a_SOURCES = $(BUILT_C)
+ lib_libgprof_a_SOURCES = o/gprof.c
+ lib_libgprof_a_CFLAGS = $(AM_CFLAGS) -fno-omit-frame-pointer -pg
+@@ -1293,6 +1403,7 @@ o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$
+ o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
++o/boot.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/character.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/file.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/gcl_readline.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1447,6 +1558,8 @@ o/lib_libbase_gcl_gprof_a-user_match.$(O
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
++o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT): o/$(am__dirstamp) \
++      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-character.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1654,6 +1767,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker
+@@ -1688,6 +1802,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker
+@@ -2761,6 +2876,20 @@ o/lib_libbase_gcl_gprof_a-mapfun.obj: o/
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-mapfun.obj `if test -f 'o/mapfun.c'; then $(CYGPATH_W) 'o/mapfun.c'; else $(CYGPATH_W) '$(srcdir)/o/mapfun.c'; fi`
++o/lib_libbase_gcl_gprof_a-boot.o: o/boot.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c
++
++o/lib_libbase_gcl_gprof_a-boot.obj: o/boot.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi`
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi`
++
+ o/lib_libbase_gcl_gprof_a-gprof.o: o/gprof.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo -c -o o/lib_libbase_gcl_gprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Po
+@@ -3974,6 +4103,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/bind.Po
+       -rm -f o/$(DEPDIR)/bitop.Po
+       -rm -f o/$(DEPDIR)/block.Po
++      -rm -f o/$(DEPDIR)/boot.Po
+       -rm -f o/$(DEPDIR)/bzero.Po
+       -rm -f o/$(DEPDIR)/catch.Po
+       -rm -f o/$(DEPDIR)/cfun.Po
+@@ -4008,6 +4138,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po
+@@ -4294,6 +4425,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/bind.Po
+       -rm -f o/$(DEPDIR)/bitop.Po
+       -rm -f o/$(DEPDIR)/block.Po
++      -rm -f o/$(DEPDIR)/boot.Po
+       -rm -f o/$(DEPDIR)/bzero.Po
+       -rm -f o/$(DEPDIR)/catch.Po
+       -rm -f o/$(DEPDIR)/cfun.Po
+@@ -4328,6 +4460,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po
+@@ -4541,7 +4674,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl
+ unixport/saved_%: unixport/raw_% # rebuild these only when out of date
+ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \
+-                  unixport/libboot.so unixport/init_raw.lsp
++                  $(LIBBOOTSO) unixport/init_raw.lsp
+       rm -rf sb_$* # FIXME sandbox ugliness for parallel builds
+       mkdir sb_$*
+       cd sb_$* && \
+@@ -4549,14 +4682,17 @@ unixport/saved_%: | unixport/raw_% unixp
+               ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \
+               mkdir h && \
+               ln -snf ../../h/cmpinclude.h h/ && \
+-              echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \
++              touch prof_init.lsp && \
++              ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \
++              echo "(system:save-system \"../$@\")" | \
++              cat ../unixport/init_raw.lsp prof_init.lsp - | \
+                       GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
+                               ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
+               rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
+       rm -rf sb_$*
+-unixport/raw_%: unixport/lib%.a
+-      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
++unixport/raw_%: unixport/lib%.a $(FF) $(LF)
++      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -4754,14 +4890,14 @@ o/boot.h: %.h: %.ini
+       echo 'void gcl_init_boot(void){' >> $@
+       cat $< >> $@
+       echo '}' >> $@
+-unixport/libboot.so: o/boot.c o/boot.h
++$(LIBBOOTSO): o/boot.c o/boot.h
+       $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
+               -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@
+ o/boot.ini: CPPFLAGS += -DNO_BOOT_H
+ # parallel builds can only have one target accessing an intermediate file
+ # solved with BUILT_SOURCES
+-o/%.ini:  o/%.c | o/grab_defs
++o/%.ini:  o/%.c | o/grab_defs$(EXEEXT)
+       @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+       @rm -f new_$(@F)
+@@ -4824,8 +4960,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_co
+       [ -d $(@D) ] || mkdir -p $(@D)
+       $(word 1,$|) -compile $< -o $@
+-%.c: %.d | bin/dpp
+-      bin/dpp $< $@
++%.c: %.d | bin/dpp$(EXEEXT)
++      $| $< $@
+ gcl-tk/demos gcl-tk $(MY_DIRS): % :
+       [ -d $@ ] || mkdir -p $@
+--- gcl27-2.7.1.orig/bin/gcl.in
++++ gcl27-2.7.1/bin/gcl.in
+@@ -5,13 +5,19 @@ VERS=@VERSION@
+ if [ -e /etc/default/gcl$EXT ] ; then
+     . /etc/default/gcl$EXT ;
+-    if ! set | grep -q -w GCL_ANSI ; then GCL_ANSI=$DEFAULT_GCL_ANSI ; fi
++    if ! set | grep -q -w GCL_ANSI ; then
++      if [ "$DEFAULT_GCL_ANSI" != "" ] ; then
++          GCL_ANSI="t" ;
++      else
++          GCL_ANSI="no" ;
++      fi
++    fi
+     if ! set | grep -q -w GCL_PROF ; then GCL_PROF=$DEFAULT_GCL_PROF ; fi
+ fi
+ DIR=@prefix@/lib/gcl-$VERS;
+-if [ "$GCL_ANSI" = "" ] ; then
++if [ "$GCL_ANSI" = "no" ] ; then
+     if [ "$GCL_PROF" = "" ] ; then
+       EXE=saved_gcl;
+     else
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -334,8 +334,10 @@
+         ((append at '(*))))));let call_proc_new foil fast linking and catch errors
+ (defun add-fast-link (fname la &optional apnarg
+-                          &aux n
+-                          (at (call-arg-types (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname)) la apnarg))
++                    &aux n
++                      (at (call-arg-types
++                           (adj-call-tps-max (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname)))
++                           la apnarg))
+                           (rt (link-rt (get-return-type fname) t))
+                           (clp (cclosure-p fname))
+                           (tail (list rt at clp apnarg)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -2353,6 +2353,12 @@
+    (otherwise                          (when (or always (ltvp val))
+                                        `(vv ,val)))))
++(defun encap-src-val (val)
++  (typecase val
++    (function  (afe (cons 'df nil) (mf (fle val))))
++    (cons (cons (encap-src-val (car val)) (encap-src-val (cdr val))))
++    (t val)))
++
+ (defun c1constant-value (val always &aux (val (if (exit-to-fmla-p) (not (not val)) val)))
+   (case 
+    val
+@@ -2363,11 +2369,7 @@
+       (when l 
+       `(location 
+         ,(make-info :type (or (ltvp val)
+-                              (object-type
+-                               (typecase val
+-                                 (function  (afe (cons 'df nil) (mf (fle val))))
+-                                 (list (copy-tree val))
+-                                 (t val)))))
++                              (object-type (encap-src-val val))))
+         ,l))))))
+ (defvar *compiler-temps*
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpflet.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpflet.lsp
+@@ -495,7 +495,7 @@
+        (clp (when clp (ccb-vs-str (fun-ref-ccb fun))))
+        (nm (if clp (ms clp "->fun.fun_self") nm))
+        (inl (g1 clp nm sig ap clp (if clp -1 (fun-level fun)))))
+-    `(,(car sig) ,(cadr sig) 
++    `(,(adj-call-tps-max (car sig)) ,(cadr sig)
+       ,(if mv (flags rfa svt) (flags rfa))
+       ,inl)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -823,7 +823,7 @@
+     ((cons (eql vv) t) (fm-to-string (cadr form)))
+     ((cons (member char-value fixnum-value character-value) t) (fm-to-string (caddr form)))
+     ((eql most-negative-fixnum)  #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)"))
+-    (integer (format nil "~a" form)); string character
++    (fixnum (format nil "~a" form)); string character
+     (float (format nil "~10,,,,,,'eG" form))
+     ((complex float)
+      (string-concatenate "(" (fm-to-string (realpart form)) " + I * " (fm-to-string (imagpart form)) ")"))))
+@@ -832,7 +832,7 @@
+   (string-concatenate
+    (cond ((member key '(:cnum :creal)) "")
+        ((eq ft tt) "")
+-        ((equal ft t)
++       ((equal ft t)
+          (if *compiler-new-safety*
+              (let ((v (member key '(:char :int :fixnum))))
+                (if v (si::string-concatenate (setq p "object_to_") (strcat key))
+@@ -1127,11 +1127,19 @@
+     (let ((x (position x +c-global-arg-types+ :test 'type<=)))
+       (if x (1+ x) 0))))
++(defconstant +max-typed-args+
++  (let ((x (cdr (tp-bnds (cadr (si::sig 'c-function-argd))))))
++    (if (typep x 'fixnum) (1- (truncate (integer-length x) 2)) 0)))
++
++(defun adj-call-tps-max (tps &aux (i -1))
++  (mapcar (lambda (x) (type-or1 (>= (incf i) +max-typed-args+) x)) tps))
++
+ (defun new-proclaimed-argd (args return)
+   (do* ((type (f-type return) (f-type (pop args)))
+       (i 0 (+ 2 i))
+       (ans type (logior ans (ash type i))))
+-       ((or (>= i 32) (null args)) (the (unsigned-byte 32) ans))))
++       ((or (>= i #.(ash +max-typed-args+ 1)) (null args))
++      (the (unsigned-byte #.(1+ (ash +max-typed-args+ 1))) ans))))
+ (defun type-f (x)
+   (declare (fixnum x))
+@@ -1300,14 +1308,16 @@
+ (defun t3defun-local-entry (fname cfun lambda-expr sp inline-info
+                                 &aux specials *reg-clv* (requireds (caaddr lambda-expr)) nargs)
+   (do ((vl requireds (cdr vl))
+-       (types (cadr inline-info) (cdr types)))
++       (types (cadr inline-info) (cdr types))
++       (i 0 (1+ i)))
+       ((endp vl))
+       (cond ((eq (var-kind (car vl)) 'special)
+            (push (cons (car vl) (var-loc (car vl))) specials))
+           ((var-cb (car vl)) (push (list (eq 'clb (var-loc (car vl))) (car vl)) *reg-clv*))
+-;         ((var-cb (car vl)) (push (car vl) *reg-clv*))
+           ((setf (var-kind (car vl))
+-                 (or (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+)) 'object))))
++                 (or (when (< i +max-typed-args+)
++                       (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+)))
++                     'object))))
+       (setf (var-loc (car vl)) (cs-push (var-type (car vl)) t)))
+   (when (is-narg-le lambda-expr)
+     (setq nargs (car (last requireds)))
+@@ -1382,13 +1392,12 @@
+     (wt-h "#define VMRV" cm "(a_,b_)" vstu bdsu frsu " return((" (declaration-type (rep-type return-type)) ")a_);")
+     (wt-h "#define VMR" cm "(a_) VMRV" cm "(a_,0);")))
+-
+-(defun wt-requireds (requireds arg-types &optional first narg)
++(defun wt-requireds (requireds arg-types &optional first narg &aux (i -1))
+   (declare (ignore arg-types))
+   (flet ((wt (x) (wt x) (let ((*compiler-output1* *compiler-output2*)) (wt x))))
+       (dolist (v requireds (wt (if narg ",...)" ")")))
+         (setq narg (or narg (is-narg-var v)))
+-        (let* ((gt (global-type-bump (var-type v)))
++        (let* ((gt (global-type-bump (if (< (incf i) +max-typed-args+) (var-type v) t)))
+                (cvar (cs-push gt t)))
+           (when first (wt ","))
+           (setq first t)
+@@ -1811,6 +1820,12 @@
+ ;;                      ,@(mapcar (lambda (x y) 
+ ;;                                  `(unbox ,(intern (symbol-name x) 'keyword) ,y)) args syms)))))))
++(defun c-key-rep (key)
++  (ecase key
++    ((:object :char :int :long :float :double :fixnum :void) (string-downcase key))
++    (:string "char *")
++    (:ustring "unsigned char *")))
++
+ (defmacro defentry (n args c &optional (lt t)
+                     &aux (tsyms (load-time-value
+                                  (mapl (lambda (x) (setf (car x) (gensym "DEFENTRY")))
+@@ -1824,9 +1839,9 @@
+        (tps (mapcar (lambda (x) (intern (string (if (consp x) (car x) x)) 'keyword)) args))
+        (decl (reduce (lambda (y x)
+                        (strcat y (if (> (length y) 0) "," "")
+-                               (cdr (assoc (get x 'cmp-lisp-type) +defentry-c-rep-alist+))))
++                               (c-key-rep x)))
+                      tps :initial-value ""))
+-       (decl (concatenate 'string (string-downcase rt) " " m "(" decl ");"))
++       (decl (concatenate 'string (c-key-rep rt) " " m "(" decl ");"))
+        (decl (if st "" decl))
+        (syms (mapcar (lambda (x) (declare (ignore x)) (pop tsyms)) args)))
+   `(defun ,n ,syms 
+@@ -1881,14 +1896,16 @@
+   (setq h (fun-call fun) at (caar h) rt (cadar h)
+       at (mapcar 'global-type-bump at) rt (global-type-bump rt));FIXME
+-  (dolist (vl requireds)
+-    (cond ((eq (var-kind vl) 'special)
+-         (push (cons vl (var-loc vl)) specials))
+-        ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*))
+-;       ((var-cb vl) (push vl *reg-clv*))
+-        ((setf (var-kind vl)
+-               (or (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+)) 'object))))
+-    (setf (var-loc vl) (cs-push (var-type vl) t)))
++  (do ((vlp requireds (cdr vlp))(i 0 (1+ i)))((endp vlp))
++    (let ((vl (car vlp)))
++      (cond ((eq (var-kind vl) 'special)
++           (push (cons vl (var-loc vl)) specials))
++          ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*))
++          ((setf (var-kind vl)
++                 (or (when (< i +max-typed-args+)
++                       (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+)))
++                     'object))))
++      (setf (var-loc vl) (cs-push (var-type vl) t))))
+   (wt-comment "local function " (if (fun-name fun) (fun-name fun) nil))
+   (wt-h   "static " (declaration-type (rep-type rt))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp
+@@ -220,11 +220,6 @@
+          (list* nil +c-local-var-types-syms+))
+    `((object . "object "))))
+-(defconstant +defentry-c-rep-alist+
+-  (mapcar (lambda (x &aux (z (assoc x *c-types*)))
+-          (cons (cadr z) (eighth z)))
+-        '(char #+64bit signed-int fixnum short-float long-float string t)))
+-
+ (defconstant +cmp-type-alist+
+   (mapcar (lambda (x) (cons (cmp-norm-tp (car x)) (cdr x))) +type-alist+))
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -719,6 +719,10 @@ LDFLAGS
+ CFLAGS
+ CC
+ PRELINK_CHECK
++AMM_LIBBOOT_FALSE
++AMM_LIBBOOT_TRUE
++LF
++FF
+ host_os
+ host_vendor
+ host_cpu
+@@ -807,6 +811,7 @@ ac_user_opts='
+ enable_option_checking
+ enable_silent_rules
+ with_lispdir
++enable_libboot
+ enable_machine
+ enable_widecons
+ enable_safecdr
+@@ -1478,6 +1483,7 @@ Optional Features:
+   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+   --enable-silent-rules   less verbose build output (undo: "make V=1")
+   --disable-silent-rules  verbose build output (undo: "make V=0")
++put bootstrap code in shared library to be discarded
+   --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs
+   --enable-widecons will use a three word cons with simplified typing
+   --enable-safecdr will protect cdr from immfix and speed up type processing
+@@ -4149,6 +4155,38 @@ case $canonical in
+     i?86-pc-solaris*) use=solaris-i386;;
+ esac
++# Check whether --enable-libboot was given.
++if test ${enable_libboot+y}
++then :
++  enableval=$enable_libboot; libboot=$enableval
++else case e in #(
++  e) libboot="yes" ;;
++esac
++fi
++
++
++if test "$use" = "gnuwin95" ; then
++   FF=o/firstfile.o
++
++   LF=o/lastfile.o
++
++   libboot="no"
++fi
++
++ if test "$libboot" = "yes"; then
++  AMM_LIBBOOT_TRUE=
++  AMM_LIBBOOT_FALSE='#'
++else
++  AMM_LIBBOOT_TRUE='#'
++  AMM_LIBBOOT_FALSE=
++fi
++
++if test "$libboot" = "yes" ; then
++
++printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h
++
++fi
++
+ # Check whether --enable-machine was given.
+ if test ${enable_machine+y}
+ then :
+@@ -7155,19 +7193,11 @@ case $use in
+       assert_arg_to_cflags -mms-bitfields
+       for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h;  do
+           cat $i.in | sed 's,^\r\n$,\r\n,g' >tmp && mv tmp $i.in;
+-      done
+-      OLD_LDFLAGS=$LDFLAGS
+-      assert_arg_to_ldflags -pg
+-      GPL_FLAG="-pg"
+-      LDFLAGS=$OLD_LDFLAGS;;
++      done;;
+     *gnuwin*)
+       assert_arg_to_cflags -fno-zero-initialized-in-bss
+       assert_arg_to_cflags -mms-bitfields
+-        assert_arg_to_ldflags -Wl,--stack,8000000
+-      OLD_LDFLAGS=$LDFLAGS
+-      assert_arg_to_ldflags -pg
+-      GPL_FLAG="-pg"
+-      LDFLAGS=$OLD_LDFLAGS;;
++        assert_arg_to_ldflags -Wl,--stack,8000000;;
+     386-linux)
+       if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then
+          add_arg_to_cflags -ffloat-store;
+@@ -8742,6 +8772,41 @@ esac
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
++printf %s "checking size of size_t... " >&6; }
++if test ${ac_cv_sizeof_size_t+y}
++then :
++  printf %s "(cached) " >&6
++else case e in #(
++  e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"
++then :
++
++else case e in #(
++  e) if test "$ac_cv_type_size_t" = yes; then
++     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++as_fn_error 77 "cannot compute sizeof (size_t)
++See 'config.log' for more details" "$LINENO" 5; }
++   else
++     ac_cv_sizeof_size_t=0
++   fi ;;
++esac
++fi
++ ;;
++esac
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
++printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
++
++
++
++printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
++
++
++# The cast to long int works around a bug in the HP C Compiler
++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
++# This bug is HP SR number 8606223364.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+ printf %s "checking size of long... " >&6; }
+ if test ${ac_cv_sizeof_long+y}
+@@ -9029,7 +9094,8 @@ esac
+ printf %s "checking for hugepagewidth... " >&6; }
+ j=""
+ if test -e /proc/meminfo ; then
+-   j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}'  /proc/meminfo`
++   j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;
++   if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}'  /proc/meminfo`
+ fi
+ if test "$j" != "" ; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $j" >&5
+@@ -11661,9 +11727,6 @@ then :
+ fi
+-#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`"
+-LDFLAGS="`echo $GPL_FLAG $LDFLAGS`"
+-#AM_LDFLAGS = $LDFLAGS
+ BASE_LDFLAGS="$LDFLAGS"
+ LDFLAGS=""
+@@ -11859,6 +11922,10 @@ else
+   am__EXEEXT_FALSE=
+ fi
++if test -z "${AMM_LIBBOOT_TRUE}" && test -z "${AMM_LIBBOOT_FALSE}"; then
++  as_fn_error $? "conditional \"AMM_LIBBOOT\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
+ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+   as_fn_error $? "conditional \"AMDEP\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -71,6 +71,22 @@ case $canonical in
+     i?86-pc-solaris*) use=solaris-i386;;
+ esac
++AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded],
++            [libboot=$enableval],[libboot="yes"])
++
++if test "$use" = "gnuwin95" ; then
++   FF=o/firstfile.o
++   AC_SUBST(FF)
++   LF=o/lastfile.o
++   AC_SUBST(LF)
++   libboot="no"
++fi
++
++AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"])
++if test "$libboot" = "yes" ; then
++   AC_DEFINE([USE_LIBBOOT],[1],[boot code in shared library])
++fi
++
+ AC_ARG_ENABLE([machine],[  --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs],
+             [echo enable_machine=$enableval ; use=$enableval])
+@@ -271,19 +287,11 @@ case $use in
+       assert_arg_to_cflags -mms-bitfields
+       for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h;  do
+           cat $i.in | sed 's,[^\r]\n$,\r\n,g' >tmp && mv tmp $i.in;
+-      done
+-      OLD_LDFLAGS=$LDFLAGS
+-      assert_arg_to_ldflags -pg
+-      GPL_FLAG="-pg"
+-      LDFLAGS=$OLD_LDFLAGS;;
++      done;;
+     *gnuwin*)
+       assert_arg_to_cflags -fno-zero-initialized-in-bss
+       assert_arg_to_cflags -mms-bitfields
+-        assert_arg_to_ldflags -Wl,--stack,8000000
+-      OLD_LDFLAGS=$LDFLAGS
+-      assert_arg_to_ldflags -pg
+-      GPL_FLAG="-pg"
+-      LDFLAGS=$OLD_LDFLAGS;;
++        assert_arg_to_ldflags -Wl,--stack,8000000;;
+     386-linux)
+       if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then
+          add_arg_to_cflags -ffloat-store;
+@@ -793,6 +801,7 @@ esac
+ # mechanism, in the PAGE macro.  This offset is subtracted from
+ # addresses, in calculating a page for an address in the heap.
++AC_CHECK_SIZEOF(size_t,0)
+ AC_CHECK_SIZEOF(long,0)
+ AC_CHECK_SIZEOF(short,0)
+ AC_CHECK_SIZEOF(int,0)
+@@ -853,7 +862,8 @@ esac
+ AC_MSG_CHECKING([for hugepagewidth])
+ j=""
+ if test -e /proc/meminfo ; then
+-   j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}'  /proc/meminfo`
++   j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;
++   if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}'  /proc/meminfo`
+ fi
+ if test "$j" != "" ; then
+    AC_MSG_RESULT([$j])
+@@ -1849,9 +1859,6 @@ AC_CONFIG_FILES([bin/gcl])
+ AC_CHECK_HEADERS(sys/mman.h,AC_CHECK_FUNCS(mprotect))
+ AC_CHECK_HEADERS(alloca.h)
+-#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`"
+-LDFLAGS="`echo $GPL_FLAG $LDFLAGS`"
+-#AM_LDFLAGS = $LDFLAGS
+ BASE_LDFLAGS="$LDFLAGS"
+ LDFLAGS=""
+ AC_SUBST(BASE_LDFLAGS)
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2ore2"
++"Version_2_7_2ore3"
+--- gcl27-2.7.1.orig/h/386-macosx.h
++++ gcl27-2.7.1/h/386-macosx.h
+@@ -132,7 +132,7 @@ if (realpath (buf, fub) == 0) {
+ #define UC(a_) ((ucontext_t *)a_)
+ #define SF(a_) ((siginfo_t *)a_)
+-#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr))
++#define FPE_CODE(i_,v_) make_fixnum((fixnum)FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr))
+ #define FPE_ADDR(i_,v_) make_fixnum(UC(v_)->uc_mcontext->__fs.__fpu_fop ? UC(v_)->uc_mcontext->__fs.__fpu_ip : (fixnum)SF(i_)->si_addr)
+ #define FPE_CTXT(v_) list(3,make_fixnum((fixnum)&UC(v_)->uc_mcontext->__ss), \
+                         make_fixnum((fixnum)&UC(v_)->uc_mcontext->__fs.__fpu_stmm0), \
+--- gcl27-2.7.1.orig/h/compprotos.h
++++ gcl27-2.7.1/h/compprotos.h
+@@ -85,7 +85,11 @@ char object_to_char(object);
+ void not_a_symbol(object);
+ object number_expt(object,object);
+ object fLrow_major_aref(object,fixnum);
++#if SIZEOF_SIZE_T == SIZEOF_INT
++void *alloca(unsigned);
++#else
+ void *alloca(unsigned long);
++#endif
+ object cmod(object);
+ object ctimes(object,object);
+ object cdifference(object,object);
+--- gcl27-2.7.1.orig/h/gclincl.h.in
++++ gcl27-2.7.1/h/gclincl.h.in
+@@ -315,6 +315,9 @@
+ /* The size of 'short', as computed by sizeof. */
+ #undef SIZEOF_SHORT
++/* The size of 'size_t', as computed by sizeof. */
++#undef SIZEOF_SIZE_T
++
+ /* staticly linked images */
+ #undef STATIC_LINKING
+@@ -332,6 +335,9 @@
+ /* use gprof */
+ #undef USE_GPROF
++/* boot code in shared library */
++#undef USE_LIBBOOT
++
+ /* use readline library */
+ #undef USE_READLINE
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -1450,8 +1450,6 @@ void init_shared_memory(void);
+ void * object_to_pointer(object);
+-void * alloca(unsigned long);
+-
+ object make_dcomplex(dcomplex);
+ object find_init_string(const char *);
+--- gcl27-2.7.1.orig/info/internal.texi
++++ gcl27-2.7.1/info/internal.texi
+@@ -218,7 +218,7 @@ GCL specific: The compiler defines a Lis
+ calling sequence to the C language function specified by C-FUNCTION.  The
+ interpreter ignores this form.  The ARG-TYPES specifies the C types of the
+ arguments which C-FUNCTION requires.  The list of allowed types is (object
+-char int float double string).  Code will be produced to coerce from a lisp
++char int long float double string).  Code will be produced to coerce from a lisp
+ object to the appropriate type before passing the argument to the C-FUNCTION.
+ The c-function should be of the form (c-result-type c-fname) where
+ c-result-type is a member of (void object char int float double string).
+--- gcl27-2.7.1.orig/lsp/gcl_info.lsp
++++ gcl27-2.7.1/lsp/gcl_info.lsp
+@@ -96,18 +96,12 @@
+ (defun get-index-node ()
+  (or (third *current-info-data*) 
+-     (let* (
+-          s
+-          (node-string (car (nth 1 *current-info-data*)))
+-          (node
+-           (and node-string (car (get-nodes "Index" node-string)))))
+-       (when node
+-         (setq s (show-info
+-                  node
+-                  nil
+-                  nil
+-                  ))
+-      (setf (third *current-info-data*) s)))))
++     (let* ((node-string (car (nth 1 *current-info-data*)))
++          (nodes (when node-string (get-nodes "Index" node-string))))
++       (when nodes
++       (setf (third *current-info-data*)
++             (reduce 'string-concatenate
++                     (mapcar (lambda (x) (show-info x nil nil)) nodes)))))))
+ (defun nodes-from-index (pat  &aux (i 0) ans
+                             (*case-fold-search* t) *match-data*)
+--- gcl27-2.7.1.orig/o/format.c
++++ gcl27-2.7.1/o/format.c
+@@ -160,11 +160,11 @@ object sSAindent_formatted_outputA;
+                       VOL int old_fmt_index; \
+                       VOL int old_fmt_end; \
+                       VOL object old_fmt_iteration_list; \
+-                      jmp_bufp   VOL old_fmt_jmp_bufp; \
++                      jmp_bufp VOL old_fmt_jmp_bufp; \
+                       VOL int old_fmt_indents; \
+                       VOL object old_fmt_string ; \
+-                      VOL object(*old_fmt_advance)(void) ;    \
+-                      VOL void (*old_fmt_lt)(volatile bool,bool) ;    \
++                      object(*VOL old_fmt_advance)(void) ;    \
++                      void (*VOL old_fmt_lt)(volatile bool,bool) ;    \
+                         VOL format_parameter *old_fmt_paramp
+ #define       fmt_save        old_fmt_stream = fmt_stream; \
+                       old_ctl_origin = ctl_origin; \
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -582,7 +582,7 @@ void
+ init_boot(void) {
+   char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self;
+-#ifndef __CYGWIN__
++#ifdef USE_LIBBOOT
+   void *v,*q;
+ #endif
+   char *z,*s="libboot.so";
+@@ -592,14 +592,14 @@ init_boot(void) {
+   sSAoptimize_maximum_pagesA->s.s_dbind=Cnil;
+   z=alloca(n);
+   snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s);
+-#ifndef __CYGWIN__
++#ifdef USE_LIBBOOT
+   if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL)))
+     printf("%s\n",dlerror());
+   if (!(q=dlsym(v,"gcl_init_boot")))
+     printf("%s\n",dlerror());
+ #endif
+   initializing_boot=1;
+-#ifdef __CYGWIN__
++#ifndef USE_LIBBOOT
+   {
+     extern void gcl_init_boot(void);
+     gcl_init_boot();
+--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in
++++ gcl27-2.7.1/unixport/init_raw.lsp.in
+@@ -90,13 +90,13 @@
+ (in-package :compiler)
+ (setq *cc* @LI_CC@
+-      *default-prof-p* (> (length @LI_DFP@) 0)
+       *ld* @LI_LD@
+       *ld-libs* @LI_LD_LIBS@
+       *ld-libs* (concatenate 'string "-l" #+ansi-cl "ansi_" "gcl" #+gprof "_gprof" " " *ld-libs*)
+       *opt-three* @LI_OPT_THREE@
+       *opt-two* @LI_OPT_TWO@
+-      *init-lsp* @LI_INIT_LSP@)
++      *init-lsp* @LI_INIT_LSP@
++      si::*info-paths* (cons "@prefix@/share/info/" si::*info-paths*))
+ (import 'si::(clines defentry defcfun object void int double quit bye gbc system
+                    commonp *break-on-warnings* make-char char-bits char-font
diff --git a/debian/patches/Version_2_7_2pre1 b/debian/patches/Version_2_7_2pre1
new file mode 100644 (file)
index 0000000..3d24baf
--- /dev/null
@@ -0,0 +1,21 @@
+Description: Update to git tag Version_2_7_2pre1
+ Git tag update
+Forwarded: not-needed
+Author: Camm Maguire <camm@debian.org>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_0"
++"Version_2_7_2ore1"
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -707,6 +707,7 @@ empty_relblock(void) {
+   for (;!rb_emptyp();) {
+     tm_table[t_relocatable].tm_adjgbccnt--;
+     expand_contblock_index_space();
++    expand_contblock_array();
+     GBC(t_relocatable);
+   }
+   sSAleaf_collection_thresholdA->s.s_dbind=o;
diff --git a/debian/patches/Version_2_7_2pre10 b/debian/patches/Version_2_7_2pre10
new file mode 100644 (file)
index 0000000..fbad1a9
--- /dev/null
@@ -0,0 +1,191 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Feb, 22 2026 16:56:52 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -110,7 +110,7 @@ endif
+ EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\
+          lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \
+-         majvers minvers git.tag release
++         majvers minvers git.tag release bin/c23.awk
+ # end of primaries
+@@ -123,7 +123,7 @@ INCL_TEXI=$(addprefix info/,$(addsuffix
+ INCL_C=o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \
+        o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \
+-       o/sfasli.c o/firstfile.c o/lastfile.c
++       o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c
+ INIT_L=unixport/sys_init.c unixport/sys.c o/boot.c unixport/cinit.lisp
+ BASE_H= h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h \
+       h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \
+@@ -459,8 +459,8 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
+-      chmod +x bin/c23.awk
+-      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
++      chmod +x $(word 3,$^)
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | $(word 3,$^) >$@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+       @cat $^ >new_$(@F)
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -1017,7 +1017,7 @@ dist_noinst_DATA = $(am__append_5) $(am_
+ EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\
+          lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \
+-         majvers minvers git.tag release
++         majvers minvers git.tag release bin/c23.awk
+ # end of primaries
+@@ -1030,7 +1030,7 @@ INCL_TEXI = $(addprefix info/,$(addsuffi
+ INCL_C = o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \
+        o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \
+-       o/sfasli.c o/firstfile.c o/lastfile.c
++       o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c
+ INIT_L = unixport/sys_init.c unixport/sys.c o/boot.c unixport/cinit.lisp
+ BASE_H = h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h \
+@@ -4907,8 +4907,8 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
+-      chmod +x bin/c23.awk
+-      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
++      chmod +x $(word 3,$^)
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | $(word 3,$^) >$@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+       @cat $^ >new_$(@F)
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -301,8 +301,11 @@
+       (unless (= nreq nsup) (list "_n==" (- (1+ nreq)) (unless st "&&")))
+       (unless st "_l==Cnil") ")"))
+-(defun mod-argstr (n call st nsup)
+-  (let* ((x (commasep (append (nobs nsup "#") (nobs (- n nsup)) (when st (list "_l")))))
++(defun nobs-wrap (nobs sig &aux (at (car sig)))
++  (mapcar (lambda (x y) (ms  (cdr (assoc y +to-c-var-alist+)) "(" x ")")) nobs at))
++
++(defun mod-argstr (n call st nsup sig)
++  (let* ((x (commasep (append (nobs nsup "#") (nobs-wrap (nobs (- n nsup)) sig) (when st (list "_l")))))
+        (s (or (position #\# call) (length call))))
+     (ms (subseq call 0 s) x)))
+@@ -349,7 +352,7 @@
+       (let ((nl (list (string #\Newline) "        ")))
+       (ms (list "@" (nords (1+ nsup)) ";") 
+           "({" (bind-str nreq nsup nl) nl (cond-str nreq nsup st)  " ? " nl
+-          (nvfun-wrap cname (mod-argstr nreq argstr st nsup) sig clp ap) " : " nl
++          (nvfun-wrap cname (mod-argstr nreq argstr st nsup sig) sig clp ap) " : " nl
+           (insufficient-arg-str fnstr nreq nsup sig st) ";})")))))
+@@ -490,14 +493,16 @@
+ (defun stub (num name args type clp
+-           &aux (va (eq '* (car (last args)))) (n (if va 1 0))(i (max n (- (length args) n)));FIXME
++           &aux (va (eq '* (car (last args)))) (n (if va 1 0))
++             (i (max n (- (length args) n)));FIXME
++             (si (write-to-string i))
+              (d (declaration-type (rep-type (if (link-arg-p type) type t)))))
+   (concatenate
+    'string
+    (stub-decl (concatenate 'string "LnkT" num) args d t)
+    "{
+-      int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" (write-to-string i)) ";
+-      object *FOO=alloca(nargs*sizeof(*FOO));
++      int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" si) ";
++      object *FOO=alloca((nargs>" si "? nargs : " si ")*sizeof(*FOO));
+       "
+    (let ((j 0))
+@@ -512,9 +517,9 @@
+       "
+       {
+           va_list ap;
+-          va_start(ap,x" (write-to-string i) ");
++          va_start(ap,x" si ");
+           int i;
+-          for (i=" (write-to-string i) ";i<nargs;i++) FOO[i]=va_arg(ap,object);
++          for (i=" si ";i<nargs;i++) FOO[i]=va_arg(ap,object);
+           va_end(ap);
+       }"))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2pre9"
++"Version_2_7_2pre10"
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -375,7 +375,7 @@ object funcall_vec(object,fixnum,object
+ #ifdef __MINGW32__
+ /* usig2.c:167:OF */ extern void main_signal_handler (int signo); /* (signo) int signo */
+ #else
+-/* /\* usig2.c:167:OF *\/ extern void main_signal_handler (int signo, siginfo_t *a, void *b); /\* (signo, a, b) int signo; int a; int b; *\/ */
++/* usig2.c:167:OF */ void main_signal_handler(int,long,void *,char *) __attribute__((aligned (16)));
+ #endif
+ /* usig2.c:375:OF */ extern void raise_pending_signals (int cond); /* (cond) int cond; */
+ /* utils.c:12:OF */ extern object IisSymbol (object f); /* (f) object f; */
+--- gcl27-2.7.1.orig/h/sparc-linux.h
++++ gcl27-2.7.1/h/sparc-linux.h
+@@ -12,7 +12,6 @@
+ #else
+ #define RELOC_H "elf64_sparc_reloc.h"
+ #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h"
+-void unwind() __attribute__((optimize("O0")));/*FIXME*/
+ #endif
+ /* #if SIZEOF_LONG == 8 */
+--- gcl27-2.7.1.orig/lsp/gcl_directory.lsp
++++ gcl27-2.7.1/lsp/gcl_directory.lsp
+@@ -57,7 +57,7 @@
+                          (d (pathname-directory p))
+                          (c (unless (eq (car d) :absolute) (make-frame (namestring *current-directory*))))
+                          (lc (when c (length c)))
+-                         (filesp (or (pathname-name p) (pathname-type p)))
++                         (filesp (not (and (eq (pathname-name p) :unspecific) (eq (pathname-type p) :unspecific))))
+                          (v (compile-regexp (to-regexp p)))(*up-key* :back) r)
+   (expand-wild-directory (pathname-device p) d
+    (lambda (dir exp &aux (pexp (pathname (if c (vector-push-string c exp 0 lc) exp))))
+--- gcl27-2.7.1.orig/o/usig.c
++++ gcl27-2.7.1/o/usig.c
+@@ -47,8 +47,6 @@ Foundation, 675 Mass Ave, Cambridge, MA
+ extern char signals_handled[];
+-extern handler_function_type main_signal_handler;
+-
+ void
+ gcl_signal(int signo, void (*handler)(int,long,void *,char *))
+ {
diff --git a/debian/patches/Version_2_7_2pre11 b/debian/patches/Version_2_7_2pre11
new file mode 100644 (file)
index 0000000..030f99b
--- /dev/null
@@ -0,0 +1,85 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Feb, 26 2026 16:58:56 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1108096
+Bug-Debian: https://bugs.debian.org/1118704
+Bug-Debian: https://bugs.debian.org/1122744
+Bug-Debian: https://bugs.debian.org/1128546
+Bug-Debian: https://bugs.debian.org/1128663
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/ansi-tests/read-byte.lsp
++++ gcl27-2.7.1/ansi-tests/read-byte.lsp
+@@ -96,7 +96,9 @@
+      (let ((s (open "foo.txt"
+                  :direction :input
+                  :element-type '(unsigned-byte 8))))
+-       (read-byte s))
++       (unwind-protect
++         (read-byte s)
++       (close s)))
+      end-of-file))
+   t)
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1 @@
+-"Version_2_7_2pre10"
+-
++"Version_2_7_2pre11"
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -73,7 +73,6 @@ struct key {short n,allow_other_keys;
+ /* bind.c:975:OF */ extern void set_key_struct (struct key *ks, object data); /* (ks, data) struct key *ks; object data; */
+ /* bind.c:995:OF */ extern void gcl_init_bind (void); /* () */
+ /* block.c:121:OF */ extern void gcl_init_block (void); /* () */
+-/* bsearch.c:5:OF */ extern void *bsearch (const void *key, const void *base, size_t nel, size_t keysize, int (*compar) (const void *,const void *)); /* (key, base, nel, keysize, compar) char *key; char *base; unsigned int nel; unsigned int keysize; int (*compar)(); */
+ #if defined (__MINGW32__)
+ /* bzero.c:3:OF */ /*  extern void bzero (char *b, size_t length); */ /* (b, length) char *b; int length; */
+ #endif
+--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp
++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp
+@@ -43,7 +43,7 @@
+                                                 (string-concatenate "(" (substitute #\^ #\! (subseq x 0 2)) (subseq x 2) ")")))
+                                         (cons #v"\\*" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "]*)") "(.*)")))
+                                         (cons #v"\\?" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "])") "(.)")))
+-                                        (cons #v"\\." (lambda (x y) (declare (ignore x y))"\\."))))
++                                        (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore x y))(string-concatenate "\\" x)))))
+ (defconstant +physical-pathname-defaults+ '(("" "" "" "")
+                                           ("" "" "" "")
+--- gcl27-2.7.1.orig/lsp/gcl_truename.lsp
++++ gcl27-2.7.1/lsp/gcl_truename.lsp
+@@ -8,7 +8,13 @@
+          (fr (set-fr fr (if (eql i -1) n i)))
+          (l (when (eq (stat1 fr) :link) (readlinkat 0 fr))))
+       (cond (l (let ((b (if (eql #\/ (aref l 0)) 0 b)))
+-               (link-expand (concatenate 'string (set-fr fr b) l (frame (if (eql i -1) n i) n)) b)))
++               (link-expand (concatenate
++                             'string
++                             (set-fr fr b)
++                             (let ((ll (1- (length l))))
++                               (if (eql #\/ (aref l ll)) (subseq l 0 ll) l))
++                             (frame (if (eql i -1) n i) n))
++                            b)))
+           ((eql i -1) str)
+           ((link-expand str (1+ i) n fr))))))
diff --git a/debian/patches/Version_2_7_2pre12 b/debian/patches/Version_2_7_2pre12
new file mode 100644 (file)
index 0000000..55b1fb1
--- /dev/null
@@ -0,0 +1,63 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Mar, 04 2026 12:09:08 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp
+@@ -112,7 +112,11 @@
+ ;;       (list 'call-global info 'terpri (list stream))))
+ (defun gcst (n &optional e)
+-  (ms "(object(*)(" (cdr (mapcan (lambda (x) (declare (ignore x)) (list "," "object")) (make-list n))) (when e ",...") "))"))
++  (let* ((m (min n (- call-arguments-limit 2)))
++       (l1 (make-list m :initial-element ",object"))
++       (l1 (when l1 (cons "object" (cdr l1))))
++       (l2 (when (> n m) (make-list (- n m) :initial-element ",object"))))
++    (ms "(object(*)(" l1 l2 (when e ",...") "))")))
+ (defun c2apply (funob args)
+   (unless (eq 'ordinary (car funob)) (baboon))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre11"
++"Version_2_7_2pre12"
+--- gcl27-2.7.1.orig/h/error.h
++++ gcl27-2.7.1/h/error.h
+@@ -99,7 +99,7 @@ object ihs_top_function_name(ihs_ptr h);
+                                                  sKformat_control,make_simple_string(a_),sKformat_arguments,list(1,(b_)))
+ #define FEtoo_few_arguments(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+-                      sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\
++                      sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\
+                       sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_))))
+ #define FEwrong_no_args(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+@@ -112,7 +112,7 @@ object ihs_top_function_name(ihs_ptr h);
+ #define FEtoo_many_arguments(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+-                      sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\
++                      sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\
+                       sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_))))
+ #define FEtoo_many_argumentsF(a_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
diff --git a/debian/patches/Version_2_7_2pre13 b/debian/patches/Version_2_7_2pre13
new file mode 100644 (file)
index 0000000..e7a3f79
--- /dev/null
@@ -0,0 +1,1596 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Mar, 14 2026 13:04:53 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmplam.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmplam.lsp
+@@ -73,7 +73,7 @@
+        (cons (list (car procls) (or (if (atom (car ll)) (car ll) (caar ll))))
+              (decls-from-procls (cdr ll) (cdr procls) body)))))
+        
+-(defun c1lambda-expr (args &aux (regs (pop args)) requireds tv
++(defun c1lambda-expr (args osrc &aux (regs (pop args)) requireds tv
+                          doc body ss is ts other-decls (ovars *vars*)
+                          (*vars* *vars*) narg (info (make-info)) ctps)
+@@ -91,6 +91,11 @@
+   (check-vdecl (mapcar 'var-name tv) ts is)
+   
+   (setq body (c1decl-body other-decls body))
++  (let ((x (set-difference
++          (remove-if-not 'si::specialp
++                         (append regs (mapcar 'var-name *undefined-vars*)))
++          ss)))
++    (when x (push `(declare (special ,@x)) (cddr osrc))))
+   (ref-vars body requireds)
+   (dolist (var requireds) (check-vref var))
+   
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmplet.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmplet.lsp
+@@ -39,8 +39,9 @@
+                                  (unless (eq t (var-type v)) (var-type v)))
+                       (var-loc v)))
+     (unless (var-type v)
+-      (cmpwarn "Type mismatches binding declared ~s variable ~s to type ~s."
+-             (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1)))
++      (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'init-type)
++                   "Type mismatches binding declared ~s variable ~s to type ~s."
++                   (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1)))
+     (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'init-type)
+                  "Setting init type of ~s to ~s" (var-name v) (cmp-unnorm-tp (var-type v)))))
+@@ -149,6 +150,8 @@
+       (setq body nil))
+     (c1add-globals (set-difference ss vnames))
++    (let ((x (set-difference (remove-if-not 'si::specialp vnames) ss)))
++      (when x (push `(declare (special ,@x)) (cdr args))))
+     (check-vdecl vnames ts is)
+     (setq body (c1decl-body other-decls body))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmulti.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpmulti.lsp
+@@ -252,6 +252,8 @@
+       (push v vars)))
+   (c1add-globals (set-difference ss vnames))
++  (let ((x (set-difference (remove-if-not 'si::specialp vnames) ss)))
++    (when x (push `(declare (special ,@x)) (cddr args))))
+   (setq init-form (c1arg (cadr args) info))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -437,9 +437,6 @@
+              ((let let* lambda) 
+               `(,(car form) 
+                 ,(mapcar (lambda (x) (if (atom x) x `(,(car x) ,@(portable-source (cdr x) t)))) (cadr form))
+-                ,@(let* ((r (delete-if (lambda (x) (or (not (si::specialp x)) (is-declared-special x (cddr form))))
+-                                       (mapcar (lambda (x) (if (atom x) x (car x))) (cadr form)))));FIXME key name
+-                    (when r `((declare (special ,@r)))))
+                 ,@(ndbctxt (portable-source (cddr form) t))))
+              ((quote function side-effects) form)
+              (infer-tp `(,(car form) ,(cadr form)
+@@ -462,10 +459,6 @@
+                   ,@(let ((*mlts* (append fns *mlts*)))
+                       (ndbctxt (portable-source (cddr form) t))))))
+              (multiple-value-bind `(,(car form) ,(cadr form) ,(portable-source (caddr form))
+-                                    ,@(let ((r (remove-if (lambda (x) (or (not (si::specialp x)) 
+-                                                                          (is-declared-special x (cdddr form))))
+-                                                          (cadr form))))
+-                                        (when r `((declare (special ,@r)))))
+                                     ,@(ndbctxt (portable-source (cdddr form) t))))
+              ((case ccase ecase) `(,(car form) ,(portable-source (cadr form))
+                                    ,@(mapcar (lambda (x) `(,(car x) ,@(portable-source (cdr x) t))) (cddr form))))))
+@@ -811,7 +804,7 @@
+ ;    (true "Ct")
+     ((cons (eql vv) t) (fm-to-string (cadr form)))
+     ((cons (member char-value fixnum-value character-value) t) (fm-to-string (caddr form)))
+-    ((eql most-negative-fixnum)  #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)"))
++    ((eql #.most-negative-fixnum)  #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)"))
+     (fixnum (format nil "~a" form)); string character
+     (float (format nil "~10,,,,,,'eG" form))
+     ((complex float)
+@@ -895,9 +888,9 @@
+   (let ((a (member '&aux ll)))
+     (ldiff ll a)))
+-(defun do-l1-fun (name src e b &aux (wns *warning-note-stack*) (*recursion-detected* (cons (list name) *recursion-detected*)))
++(defun do-l1-fun (name src e b osrc &aux (wns *warning-note-stack*) (*recursion-detected* (cons (list name) *recursion-detected*)))
+-  (let* ((l (c1lambda-expr src))
++  (let* ((l (c1lambda-expr src osrc))
+        (osig (car e))
+        (sig (lam-e-to-sig l))
+        (rd (cdar *recursion-detected*))
+@@ -907,7 +900,7 @@
+     (cond (rep
+          (keyed-cmpnote (list name 'recursion) "Reprocessing ~s: ~s ~s" name osig sig)
+          (setq *warning-note-stack* wns);FIXME try to use with-restore-vars
+-         (do-l1-fun name src e b))
++         (do-l1-fun name src e b osrc))
+         (l))))
+@@ -932,7 +925,7 @@
+        (*src-inline-recursion* (when vis (list (make-tagged-sir (list (sir-name name)) tag (ttl-ll (cadr src))))))
+        (*c1exit* (list (make-c1exit name)))
+        (*current-form* `(defun ,name))
+-       (l (do-l1-fun name (cdr (new-defun-args src tag)) e b))
++       (l (do-l1-fun name (cdr (new-defun-args src tag)) e b src))
+        (clv (get-clv l)))
+     (setf (second e) (mapcan (lambda (x) (when (symbolp x) (list (cons x (get-sig x)))))
+                            (info-ref (cadr l)))
+@@ -941,7 +934,7 @@
+         (fifth e) (logior (if (iflag-p (info-flags (cadr l)) side-effects) 0 2) (if (= (length clv) 0) 1 0))
+         (sixth e) name)
+     (when *sig-discovery*
+-      (when (symbol-package name) (unless (eq name 'lambda) (push (cons name (apply 'si::make-function-plist e)) si::*sig-discovery-props*))))
++      (when (symbol-package name) (unless b (push (cons name (apply 'si::make-function-plist e)) si::*sig-discovery-props*))))
+     l))
+ ;; top-level lex-ref walker
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpvar.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpvar.lsp
+@@ -509,8 +509,9 @@
+       (setq t1 (ensure-known-type (coerce-to-one-value t1)))
+       (let* ((tp (type-and (var-dt v) t1)))
+       (unless (or tp (not (and (var-dt v) t1)))
+-        (cmpwarn "Type mismatches setting declared ~s variable ~s to type ~s from form ~s."
+-             (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1) (car form)))
++        (keyed-cmpnote (list (var-name v) 'type-propagation 'type)
++                       "Type mismatches setting declared ~s variable ~s to type ~s from form ~s."
++                       (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1) (car form)))
+       (keyed-cmpnote (list (var-name v) 'type-propagation 'type)
+                      "Setting var-type on ~s from ~s to ~s, form ~s, max ~s" 
+                      (var-name v) (cmp-unnorm-tp (var-type v)) (cmp-unnorm-tp tp) (car form) (cmp-unnorm-tp (var-mt v)))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre12"
++"Version_2_7_2pre13"
+--- gcl27-2.7.1.orig/info/gcl-si.info
++++ gcl27-2.7.1/info/gcl-si.info
+@@ -1,4 +1,4 @@
+-This is gcl-si.info, produced by makeinfo version 7.1 from gcl-si.texi.
++This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi.
+ This is a Texinfo GCL SYSTEM INTERNALS Manual
+@@ -12,46 +12,46 @@ END-INFO-DIR-ENTRY
\1f
+ Indirect:
+ gcl-si.info-1: 319
+-gcl-si.info-2: 347893
++gcl-si.info-2: 343510
\1f
+ Tag Table:
+ (Indirect)
+ Node: Top\7f319
+ Node: Numbers\7f1239
+-Node: Sequences and Arrays and Hash Tables\7f23636
+-Node: Characters\7f49429
+-Node: Lists\7f56825
+-Node: Streams and Reading\7f70599
+-Node: Special Forms and Functions\7f95986
+-Node: Compilation\7f121638
+-Node: Symbols\7f134272
+-Node: Operating System\7f144031
+-Node: Command Line\7f144247
+-Node: Operating System Definitions\7f148429
+-Node: Environment Variables\7f154786
+-Node: Structures\7f156375
+-Node: Iteration and Tests\7f157927
+-Node: User Interface\7f161377
+-Node: Doc\7f170439
+-Node: Type\7f173724
+-Node: GCL Specific\7f176384
+-Node: Bignums\7f185027
+-Node: C Interface\7f187717
+-Node: Available Symbols\7f187909
+-Node: External Shared Libraries\7f188400
+-Node: System Definitions\7f203986
+-Node: Regular Expressions\7f238596
+-Node: Debugging\7f244844
+-Node: Source Level Debugging in Emacs\7f245045
+-Node: Low Level Debug Functions\7f249290
+-Node: Miscellaneous\7f250290
+-Node: Environment\7f250498
+-Node: Inititialization\7f251123
+-Node: Low Level X Interface\7f251667
+-Node: Compiler Definitions\7f252264
+-Node: JAPI GUI Library Binding\7f258393
+-Node: Function Index\7f277447
+-Node: Variable Index\7f347893
++Node: Sequences and Arrays and Hash Tables\7f23635
++Node: Characters\7f49430
++Node: Lists\7f56802
++Node: Streams and Reading\7f70576
++Node: Special Forms and Functions\7f95964
++Node: Compilation\7f121601
++Node: Symbols\7f133502
++Node: Operating System\7f143262
++Node: Command Line\7f143478
++Node: Operating System Definitions\7f147660
++Node: Environment Variables\7f154017
++Node: Structures\7f155607
++Node: Iteration and Tests\7f157159
++Node: User Interface\7f160609
++Node: Doc\7f169668
++Node: Type\7f172953
++Node: GCL Specific\7f175611
++Node: Bignums\7f184163
++Node: C Interface\7f186852
++Node: Available Symbols\7f187044
++Node: External Shared Libraries\7f187535
++Node: System Definitions\7f203120
++Node: Regular Expressions\7f235093
++Node: Debugging\7f241340
++Node: Source Level Debugging in Emacs\7f241541
++Node: Low Level Debug Functions\7f245786
++Node: Miscellaneous\7f246786
++Node: Environment\7f246994
++Node: Inititialization\7f247619
++Node: Low Level X Interface\7f248163
++Node: Compiler Definitions\7f248760
++Node: JAPI GUI Library Binding\7f254730
++Node: Function Index\7f273784
++Node: Variable Index\7f343510
\1f
+ End Tag Table
+--- gcl27-2.7.1.orig/info/gcl-si.info-1
++++ gcl27-2.7.1/info/gcl-si.info-1
+@@ -1,4 +1,4 @@
+-This is gcl-si.info, produced by makeinfo version 7.1 from gcl-si.texi.
++This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi.
+ This is a Texinfo GCL SYSTEM INTERNALS Manual
+@@ -96,7 +96,7 @@ File: gcl-si.info,  Node: Numbers,  Next
+      Returns, as three values, the integer interpretation of significand
+      F, the exponent E, and the sign S of the given float, so that E
+-     FLOAT = S * F * B        where B = (FLOAT-RADIX FLOAT)
++     FLOAT = S * F * B where B = (FLOAT-RADIX FLOAT)
+      F is a non-negative integer, E is an integer, and S is either 1 or
+      -1.
+@@ -130,7 +130,7 @@ File: gcl-si.info,  Node: Numbers,  Next
+      or into RESULT-BIT-ARRAY otherwise.
+  -- Function: INT-CHAR (integer)
+-     Package:LISP
++     Package:SI
+      Performs the inverse of CHAR-INT. Equivalent to CODE-CHAR in GCL.
+@@ -211,9 +211,9 @@ File: gcl-si.info,  Node: Numbers,  Next
+      Returns an integer produced by performing the logical operation
+      specified by OP on the two integers.  OP must be the value of one
+-     of the following constants: BOOLE-CLR    BOOLE-C1        BOOLE-XOR
+-     BOOLE-ANDC1 BOOLE-SET    BOOLE-C2        BOOLE-EQV       BOOLE-ANDC2 BOOLE-1
+-     BOOLE-AND        BOOLE-NAND      BOOLE-ORC1 BOOLE-2      BOOLE-IOR       BOOLE-NOR
++     of the following constants: BOOLE-CLR BOOLE-C1 BOOLE-XOR
++     BOOLE-ANDC1 BOOLE-SET BOOLE-C2 BOOLE-EQV BOOLE-ANDC2 BOOLE-1
++     BOOLE-AND BOOLE-NAND BOOLE-ORC1 BOOLE-2 BOOLE-IOR BOOLE-NOR
+      BOOLE-ORC2 See the variable docs of these constants for their
+      operations.
+@@ -441,7 +441,7 @@ File: gcl-si.info,  Node: Numbers,  Next
+      Package:LISP
+      Returns, as three values, the significand F, the exponent E, and
+-     the sign S of the given float, so that E FLOAT = S * F * B       where B
++     the sign S of the given float, so that E FLOAT = S * F * B where B
+      = (FLOAT-RADIX FLOAT)
+      S and F are floating-point numbers of the same float format as
+@@ -865,7 +865,7 @@ File: gcl-si.info,  Node: Numbers,  Next
+      Package:LISP
+      Returns the largest integer not larger than the NUMBER divided by
+-     DIVISOR. The second returned value is (- NUMBER (* first-value
++     DIVISOR.  The second returned value is (- NUMBER (* first-value
+      DIVISOR)).
+  -- Function: PLUSP (number)
+@@ -943,7 +943,7 @@ File: gcl-si.info,  Node: Sequences and
+      elements
+      except that all elements not satisfying TEST are replaced with
+-     NEWITEM. SEQUENCE may be destroyed.
++     NEWITEM.  SEQUENCE may be destroyed.
+  -- Function: FIND-IF (test sequence &key (from-end nil) (start 0) (end
+           (length sequence)) (key #'identity))
+@@ -1630,7 +1630,7 @@ File: gcl-si.info,  Node: Sequences and
+      Package:LISP
+      Combines all the elements of SEQUENCE using a binary operation
+-     FUNCTION. If INITIAL-VALUE is supplied, it is logically placed
++     FUNCTION.  If INITIAL-VALUE is supplied, it is logically placed
+      before the SEQUENCE.
+  -- Function: STRING-LESSP (string1 string2 &key (start1 0) (end1
+@@ -1672,10 +1672,10 @@ File: gcl-si.info,  Node: Characters,  N
+      STRING. This is faster than CHAR.
+  -- Constant: CHAR-SUPER-BIT
+-     Package:LISP The bit that indicates a super character.
++     Package:SI The bit that indicates a super character.
+  -- Constant: CHAR-FONT-LIMIT
+-     Package:LISP The upper exclusive bound on values produced by
++     Package:SI The upper exclusive bound on values produced by
+      CHAR-FONT.
+  -- Function: CHAR-DOWNCASE (char)
+@@ -1685,7 +1685,7 @@ File: gcl-si.info,  Node: Characters,  N
+      returns CHAR.
+  -- Function: STRING-CHAR-P (char)
+-     Package:LISP
++     Package:SI
+      Returns T if CHAR can be stored in a string.  In GCL, this function
+      always returns T since any character in GCL can be stored in a
+@@ -1720,7 +1720,7 @@ File: gcl-si.info,  Node: Characters,  N
+      order; NIL otherwise.
+  -- Constant: CHAR-HYPER-BIT
+-     Package:LISP The bit that indicates a hyper character.
++     Package:SI The bit that indicates a hyper character.
+  -- Function: CODE-CHAR (code &optional (bits 0) (font 0))
+      Package:LISP
+@@ -1734,7 +1734,7 @@ File: gcl-si.info,  Node: Characters,  N
+      Returns the code attribute of CHAR.
+  -- Constant: CHAR-CONTROL-BIT
+-     Package:LISP The bit that indicates a control character.
++     Package:SI The bit that indicates a control character.
+  -- Function: CHAR-LESSP (char &rest more-chars)
+      Package:LISP
+@@ -1744,7 +1744,7 @@ File: gcl-si.info,  Node: Characters,  N
+      upper-case equivalent is used.
+  -- Function: CHAR-FONT (char)
+-     Package:LISP
++     Package:SI
+      Returns the font attribute of CHAR.
+@@ -1761,7 +1761,7 @@ File: gcl-si.info,  Node: Characters,  N
+      order; NIL otherwise.
+  -- Constant: CHAR-META-BIT
+-     Package:LISP The bit that indicates a meta character.
++     Package:SI The bit that indicates a meta character.
+  -- Function: GRAPHIC-CHAR-P (char)
+      Package:LISP
+@@ -1777,7 +1777,7 @@ File: gcl-si.info,  Node: Characters,  N
+      same.
+  -- Constant: CHAR-BITS-LIMIT
+-     Package:LISP The upper exclusive bound on values produced by
++     Package:SI The upper exclusive bound on values produced by
+      CHAR-BITS.
+  -- Function: CHARACTERP (x)
+@@ -1802,13 +1802,13 @@ File: gcl-si.info,  Node: Characters,  N
+      Returns T if CHAR is an upper-case character; NIL otherwise.
+  -- Function: CHAR-BIT (char name)
+-     Package:LISP
++     Package:SI
+      Returns T if the named bit is on in the character CHAR; NIL
+      otherwise.  In GCL, this function always returns NIL.
+  -- Function: MAKE-CHAR (char &optional (bits 0) (font 0))
+-     Package:LISP
++     Package:SI
+      Returns a character object with the same code attribute as CHAR and
+      with the specified BITS and FONT attributes.
+@@ -1875,7 +1875,7 @@ File: gcl-si.info,  Node: Characters,  N
+      Returns T if CHAR is either numeric or alphabetic; NIL otherwise.
+  -- Function: CHAR-BITS (char)
+-     Package:LISP
++     Package:SI
+      Returns the bits attribute (which is always 0 in GCL) of CHAR.
+@@ -1886,7 +1886,7 @@ File: gcl-si.info,  Node: Characters,  N
+      specified RADIX. Returns NIL if no such character exists.
+  -- Function: SET-CHAR-BIT (char name newvalue)
+-     Package:LISP
++     Package:SI
+      Returns a character just like CHAR except that the named bit is set
+      or cleared, according to whether NEWVALUE is non-NIL or NIL. This
+@@ -2642,7 +2642,7 @@ File: gcl-si.info,  Node: Streams and Re
+      Package:LISP
+      Prints OBJECT in the mostly readable representation.  Returns
+-     OBJECT. Equivalent to (WRITE OBJECT :STREAM STREAM :ESCAPE T).
++     OBJECT.  Equivalent to (WRITE OBJECT :STREAM STREAM :ESCAPE T).
+  -- Function: PRINC (object &optional (stream *standard-output*))
+      Package:LISP
+@@ -3226,7 +3226,7 @@ File: gcl-si.info,  Node: Special Forms
+      Package:LISP List of all the lambda-list keywords used in GCL.
+  -- Function: GET-SETF-METHOD (form)
+-     Package:LISP
++     Package:SI
+      Returns the five values (or five 'gangs') constituting the SETF
+      method for FORM. See the doc of DEFINE-SETF-METHOD for the meanings
+@@ -3373,7 +3373,7 @@ File: gcl-si.info,  Node: Special Forms
+           (defun name lambda-list {decl | doc}* {form}*)
+      Defines a function as the global function definition of the symbol
+-     NAME. The complete syntax of a lambda-list is: ({var}* [&optional
++     NAME.  The complete syntax of a lambda-list is: ({var}* [&optional
+      {var | (var [initform [svar]])}*] [&rest var] [&key {var | ({var |
+      (keyword var)} [initform [svar]])}* [&allow-other-keys]] [&aux {var
+      | (var [initform])}*]) The doc-string DOC, if supplied, is saved as
+@@ -3465,7 +3465,7 @@ File: gcl-si.info,  Node: Special Forms
+      doc of PPRINT for the output-formatting.
+  -- Variable: *EVALHOOK*
+-     Package:LISP If *EVALHOOK* is not NIL, its value must be a function
++     Package:SI If *EVALHOOK* is not NIL, its value must be a function
+      that can receive two arguments: a form to evaluate and an
+      environment.  This function does the evaluation instead of EVAL.
+@@ -3586,7 +3586,7 @@ File: gcl-si.info,  Node: Special Forms
+  -- Function: APPLYHOOK (function args evalhookfn applyhookfn &optional
+           (env nil))
+-     Package:LISP
++     Package:SI
+      Applies FUNCTION to ARGS, with *EVALHOOK* bound to EVALHOOKFN and
+      with *APPLYHOOK* bound to APPLYHOOKFN. Ignores the hook function
+@@ -3697,7 +3697,7 @@ File: gcl-si.info,  Node: Special Forms
+      to NIL.
+  -- Function: GET-SETF-METHOD-MULTIPLE-VALUE (form)
+-     Package:LISP Returns the five values (or five 'gangs') constituting
++     Package:SI Returns the five values (or five 'gangs') constituting
+      the SETF method for FORM. See the doc of DEFINE-SETF-METHOD for the
+      meanings of the gangs.  The third value (i.e., the list of store
+      variables) may consist of any number of elements.  See the doc of
+@@ -3756,7 +3756,7 @@ File: gcl-si.info,  Node: Special Forms
+      returns NIL.
+  -- Macro: DEFINE-SETF-METHOD
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (define-setf-method access-fun defmacro-lambda-list {decl | doc}*
+@@ -3776,7 +3776,7 @@ File: gcl-si.info,  Node: Special Forms
+      (documentation 'NAME 'setf).
+  -- Special Form: COMPILER-LET
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (compiler-let ({var | (var [value])}*) {form}*)
+@@ -3839,7 +3839,7 @@ File: gcl-si.info,  Node: Special Forms
+      STATEMENTs.
+  -- Variable: *APPLYHOOK*
+-     Package:LISP Used to substitute another function for the implicit
++     Package:SI Used to substitute another function for the implicit
+      APPLY normally done within EVAL. If *APPLYHOOK* is not NIL, its
+      value must be a function which takes three arguments: a function to
+      be applied, a list of arguments, and an environment.  This function
+@@ -3933,7 +3933,7 @@ File: gcl-si.info,  Node: Special Forms
+      from the UNWIND-PROTECT form.
+  -- Function: EVALHOOK (form evalhookfn applyhookfn &optional (env nil))
+-     Package:LISP
++     Package:SI
+      Evaluates FORM with *EVALHOOK* bound to EVALHOOKFN and *APPLYHOOK*
+      bound to APPLYHOOKFN. Ignores these hooks once, for the top-level
+@@ -4030,7 +4030,7 @@ File: gcl-si.info,  Node: Compilation,
+  -- Function: LINK (files image &optional post extra-libs (run-user-init
+           t) &aux raw init)
+-     Package:LISP
++     Package:COMPILER
+      On systems where dlopen is used for relocations, one cannot make
+      custom images containing loaded binary object files simply by
+@@ -4227,31 +4227,17 @@ keyword is supplied to compile-file and
+      arrays.  Please note that lisp functions are not (yet) displayed
+      with their lisp names.  Please see also the PROFILE function.
+- -- Function: GPROF-SET (begin end)
+-     Package:SYSTEM
+-
+-     GCL now has preliminary support for profiling with gprof, an
+-     externally supplied profiling tool at the C level which typically
+-     accompanies gcc.  Support must be enabled at compile time with
+-     -enable-gprof.  This function sets the address range used by
+-     GPROF-START in specifying the section of the running program which
+-     is to be profiled.  All subsequent calls to GPROF-START will use
+-     this new address range.  By default, the range is set to begin at
+-     the starting address of the .text section, and to end at the
+-     current end of the running core.  These default values can be
+-     restored by calling GPROF-SET with both argments set to 0.
+-
+  -- Variable: *DEFAULT-SYSTEM-P*
+      Package:COMPILER Specifies the default setting of :SYSTEM-P used by
+      COMPILE. Defaults to NIL.
+  -- Variable: *DEFAULT-C-FILE*
+      Package:COMPILER Specifies the default setting of :C-FILE used by
+-     COMPILE. Defaults to NIL.
++     COMPILE.  Defaults to NIL.
+  -- Variable: *DEFAULT-H-FILE*
+      Package:COMPILER Specifies the default setting of :H-FILE used by
+-     COMPILE. Defaults to NIL.
++     COMPILE.  Defaults to NIL.
+  -- Variable: *DEFAULT-DATA-FILE*
+      Package:COMPILER Specifies the default setting of :DATA-FILE used
+@@ -4303,8 +4289,8 @@ File: gcl-si.info,  Node: Symbols,  Next
+      Package:LISP
+      Look on property list of SYMBOL for property with specified
+-     INDICATOR. If found, splice this indicator and its value out of the
+-     plist, and return T. If not found, returns NIL with no side
++     INDICATOR.  If found, splice this indicator and its value out of
++     the plist, and return T. If not found, returns NIL with no side
+      effects.
+  -- Function: SYMBOL-PACKAGE (symbol)
+@@ -4927,7 +4913,7 @@ Several environment variables affect GCL
+  -- Environment Variable: GCL_MEM_BOUND
+      A positive integer bounding GCL's heap to 1<<(n+1) bytes.  Trumps
+-     GCL_MEM_MULTIPLE. Defaults to sizeof(long)-1.
++     GCL_MEM_MULTIPLE.  Defaults to sizeof(long)-1.
+  -- Environment Variable: GCL_GC_ALLOC_MIN
+      A positive float indicating the minimum fraction of heap to be
+@@ -4988,7 +4974,7 @@ File: gcl-si.info,  Node: Structures,  N
+      making a lisp structure correspond to a C structure.
+  -- Function: HELP (&optional symbol)
+-     Package:LISP
++     Package:USER
+      GCL specific: Prints the documentation associated with SYMBOL. With
+      no argument, this function prints the greeting message to GCL
+@@ -5119,7 +5105,7 @@ File: gcl-si.info,  Node: User Interface
+      Package:LISP
+      Subtracts the second and all subsequent NUMBERs from the first
+-     NUMBER. With one arg, negates it.
++     NUMBER.  With one arg, negates it.
+  -- Macro: UNTRACE
+      Package:LISP
+@@ -5150,7 +5136,7 @@ File: gcl-si.info,  Node: User Interface
+      Evaluates FORM in the single-step mode and returns the value.
+  -- Variable: *BREAK-ENABLE*
+-     Package:LISP GCL specific: When an error occurrs, control enters to
++     Package:SI GCL specific: When an error occurrs, control enters to
+      the break loop only if the value of this variable is non-NIL.
+  -- Special Variable: /
+@@ -5170,8 +5156,8 @@ File: gcl-si.info,  Node: User Interface
+      Package:LISP Holds the I/O stream used by the GCL debugger.
+  -- Variable: *BREAK-ON-WARNINGS*
+-     Package:LISP When the function WARN is called, control enters to
+-     the break loop only if the value of this varialbe is non-NIL.
++     Package:SI When the function WARN is called, control enters to the
++     break loop only if the value of this varialbe is non-NIL.
+  -- Function: CERROR (continue-format-string error-format-string &rest
+           args)
+@@ -5483,7 +5469,7 @@ File: gcl-si.info,  Node: Type,  Next: G
+      Returns T if X is of the type TYPE; NIL otherwise.
+  -- Function: COMMONP (x)
+-     Package:LISP
++     Package:SI
+      Returns T if X is a Common Lisp object; NIL otherwise.
+@@ -5548,7 +5534,7 @@ File: gcl-si.info,  Node: GCL Specific,
+ ***************
+  -- Function: SYSTEM (string)
+-     Package:LISP
++     Package:SI
+      GCL specific: Executes a Shell command as if STRING is an input to
+      the Shell.  Not all versions of GCL support this function.  At
+@@ -5580,13 +5566,8 @@ File: gcl-si.info,  Node: GCL Specific,
+      Returns a string that identifies the machine version of the machine
+      on which GCL is currently running.
+- -- Function: BY ()
+-     Package:LISP
+-
+-     GCL specific: Exits from GCL.
+-
+  -- Macro: DEFCFUN
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (defcfun header n {element}*)
+@@ -5633,9 +5614,8 @@ File: gcl-si.info,  Node: GCL Specific,
+           C-type:
+                    { object | int | char | float | double }
+-
+  -- Macro: CLINES
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (clines {string}*)
+@@ -5650,7 +5630,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      Trumps any limits specified in the environment.
+  -- Function: ALLOCATE (type number &optional (really-allocate nil))
+-     Package:LISP
++     Package:SI
+      GCL specific: Sets the maximum number of pages for the type class
+      of the GCL implementation type TYPE to NUMBER. If REALLY-ALLOCATE
+@@ -5658,7 +5638,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      be allocated immediately.
+  -- Function: GBC (x)
+-     Package:LISP
++     Package:SI
+      GCL specific: Invokes the garbage collector (GC) with the
+      collection level specified by X. NIL as the argument causes GC to
+@@ -5666,7 +5646,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      everything.
+  -- Function: SAVE (pathname)
+-     Package:LISP
++     Package:SI
+      GCL specific: Saves the current GCL core image into a program file
+      specified by PATHNAME. This function depends on the version of GCL.
+@@ -5675,7 +5655,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      permanent, and causes no future gc of currently loaded .o files.
+  -- Function: HELP* (string &optional (package 'lisp))
+-     Package:LISP
++     Package:USER
+      GCL specific: Prints the documentation associated with those
+      symbols in the specified package whose print names contain STRING
+@@ -5684,7 +5664,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      searched.
+  -- Macro: DEFLA
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (defla name lambda-list {decl | doc}* {form}*)
+@@ -5701,7 +5681,7 @@ File: gcl-si.info,  Node: GCL Specific,
+      DECL-SPECs.
+  -- Macro: DEFENTRY
+-     Package:LISP
++     Package:SI
+      Syntax:
+           (defentry name arg-types c-function)
+@@ -5710,8 +5690,8 @@ File: gcl-si.info,  Node: GCL Specific,
+      consists of a calling sequence to the C language function specified
+      by C-FUNCTION. The interpreter ignores this form.  The ARG-TYPES
+      specifies the C types of the arguments which C-FUNCTION requires.
+-     The list of allowed types is (object char int float double string).
+-     Code will be produced to coerce from a lisp object to the
++     The list of allowed types is (object char int long float double
++     string).  Code will be produced to coerce from a lisp object to the
+      appropriate type before passing the argument to the C-FUNCTION. The
+      c-function should be of the form (c-result-type c-fname) where
+      c-result-type is a member of (void object char int float double
+@@ -5753,7 +5733,6 @@ File: gcl-si.info,  Node: GCL Specific,
+               (setf (aref a n) (code-char 0)))
+               a)
+-
+  -- Function: COPY-ARRAY-PORTION (x,y,i1,i2,n1)
+      Package:SI Copy elements from X to Y starting at X[i1] to Y[i2] and
+      doing N1 elements if N1 is supplied otherwise, doing the length of
+@@ -5761,12 +5740,12 @@ File: gcl-si.info,  Node: GCL Specific,
+      has implementation dependent results.
+  -- Function: BYE ( &optional (exit-status 0))
+-     Package:LISP
++     Package:SI
+      GCL specific: Exits from GCL with exit-status.
+  -- Function: USE-FAST-LINKS (turn-on)
+-     Package:LISP
++     Package:SI
+      GCL specific: If TURN-ON is not nil, the fast link mechanism is
+      enabled, so that ordinary function calls will not appear in the
+@@ -5841,7 +5820,6 @@ parentheses.
+                    m (- (* (- i 1) (- (* 2 i) 1) (- (* 2 i) 3)))
+                    tt (truncate (* m tt) (* d (the integer (expt i 3))))))))
+-
\1f
+ File: gcl-si.info,  Node: C Interface,  Next: System Definitions,  Prev: GCL Specific,  Up: Top
+@@ -5897,7 +5875,7 @@ File: gcl-si.info,  Node: External Share
+      Complex float and complex double types can be access via:
+-     :fcomplex :dcomples
++     :fcomplex :dcomplex
+      Pointers to types available are
+@@ -6385,7 +6363,6 @@ File: gcl-si.info,  Node: External Share
+           >
+           
+-
\1f
+ File: gcl-si.info,  Node: System Definitions,  Next: Debugging,  Prev: C Interface,  Up: Top
+@@ -6425,12 +6402,6 @@ File: gcl-si.info,  Node: System Definit
+      that it will only check for types which currently include NAME.
+      After calling this the defstruct should not be altered.
+- -- Function: MAXIMUM-ALLOCATABLE-PAGES (type)
+-     Package:SI
+-
+-     GCL specific: Returns the current maximum number of pages for the
+-     type class of the GCL implementation type TYPE.
+-
+  -- Function: ALLOCATED-RELOCATABLE-PAGES ()
+      Package:SI
+@@ -6442,12 +6413,6 @@ File: gcl-si.info,  Node: System Definit
+      Give SYMBOL the VALUE on INDICATOR property.
+- -- Function: ALLOCATED-PAGES (type)
+-     Package:SI
+-
+-     GCL specific: Returns the number of pages currently allocated for
+-     the type class of the GCL implementation type TYPE.
+-
+  -- Function: ALLOCATE-RELOCATABLE-PAGES (number)
+      Package:SI
+@@ -6717,17 +6682,6 @@ File: gcl-si.info,  Node: System Definit
+      records how many times the garbage collector has been called for
+      each implementation type.
+- -- Function: CATCH-BAD-SIGNALS ()
+-     Package:SI
+-
+-     GCL/BSD specific: Installs a signal catcher for bad signals:
+-     SIGILL, SIGIOT, SIGEMT, SIGBUS, SIGSEGV, SIGSYS. The signal
+-     catcher, upon catching the signal, signals an error (and enter the
+-     break-level).  Since the internal memory of GCL may be broken, the
+-     user should check the signal and exit from GCL if necessary.  When
+-     the signal is caught during garbage collection, GCL terminates
+-     immediately.
+-
+  -- Function: RESET-STACK-LIMITS ()
+      Package:SI
+@@ -6741,7 +6695,7 @@ File: gcl-si.info,  Node: System Definit
+      non-NIL, the garbage collector prints some information on the
+      terminal.  Usually SI:*GBC-MESSAGE* should be set NIL.
+- -- Variable: *GBC-NOTIFY*
++ -- Variable: *NOTIFY-GBC*
+      Package:SI GCL specific: If the value is non-NIL, the garbage
+      collector prints a very brief one line message about the area
+      causing the collection, and the time spent in internal time units.
+@@ -6751,7 +6705,7 @@ File: gcl-si.info,  Node: System Definit
+      argument TYPE which is a lisp variable indicating the TYPE which
+      caused the current collection.
+- -- Funcition: ALLOCATED (type)
++ -- Function: ALLOCATED (type)
+      Package:SI
+      Returns 6 values:
+@@ -6835,11 +6789,6 @@ File: gcl-si.info,  Node: System Definit
+      as closing files and resetting io streams.  It would not be
+      possible to continue normally.
+- -- Function: UNCATCH-BAD-SIGNALS ()
+-     Package:SI
+-
+-     GCL/BSD specific: Undoes the effect of SI:CATCH-BAD-SIGNALS.
+-
+  -- Function: VS (i)
+      Package:SI
+@@ -6857,11 +6806,6 @@ File: gcl-si.info,  Node: System Definit
+      GCL specific: Returns the FIXNUM-th argument on the command line
+      that invoked the GCL process.
+- -- Variable: *DEFAULT-TIME-ZONE*
+-     Package:SI GCL specific: Holds the default time zone.  The initial
+-     value of SI:*DEFAULT- TIME-ZONE* is 6 (the time zone of Austin,
+-     Texas).
+-
+  -- Function: GETENV (string)
+      Package:SI
+@@ -6898,7 +6842,7 @@ File: gcl-si.info,  Node: System Definit
+      GCL specific: Starts the standard top-level listener of GCL. When
+      the GCL process is invoked, it calls SI:TOP-LEVEL by (FUNCALL
+-     'SI:TOP-LEVEL). To change the top-level of GCL, redefine
++     'SI:TOP-LEVEL).  To change the top-level of GCL, redefine
+      SI:TOP-LEVEL and save the core imange in a file.  When the saved
+      imange is invoked, it will start the redefined top-level.
+@@ -6908,38 +6852,6 @@ File: gcl-si.info,  Node: System Definit
+      GCL specific: Returns the value stack index of the i-th entity in
+      the frame stack.
+- -- Function: WRITE-DEBUG-SYMBOLS (start file &key (main-file
+-          "/usr/local/schelter/xgcl/unixport/raw_gcl") (output-file
+-          "debug-symbols.o" ))
+-     Package:SI
+-
+-     Write out a file of debug-symbols using address START as the place
+-     where FILE will be loaded into the running executable MAIN-FILE.
+-     The last is a keyword argument.
+-
+- -- Function: PROF (x y)
+-     Package:SI
+-
+-     These functions in the SI package are GCL specific, and allow
+-     monitoring the run time of functions loaded into GCL, as well as
+-     the basic functions.  Sample Usage: (si::set-up-profile 1000000)
+-     (si::prof 0 90) run program (si::prof 0 0) ;; turn off profile
+-     (si::display-prof) (si::clear-profile) (si::prof 0 90) ;; start
+-     profile again run program ..  Profile can be stopped with (si::prof
+-     0 0) and restarted with (si::prof 0 90) The START-ADDRESS will
+-     correspond to the beginning of the profile array, and the SCALE
+-     will mean that 256 bytes of code correspond to SCALE bytes in the
+-     profile array.
+-
+-     Thus if the profile array is 1,000,000 bytes long and the code
+-     segment is 5 megabytes long you can profile the whole thing using a
+-     scale of 50 Note that long runs may result in overflow, and so an
+-     understating of the time in a function.
+-
+-     You must run intensively however since, with a scale of 128 it
+-     takes 6,000,000 times through a loop to overflow the sampling in
+-     one part of the code.
+-
+  -- Function: CATCH-FATAL (i)
+      Package:SI
+@@ -7034,7 +6946,7 @@ File: gcl-si.info,  Node: System Definit
+      If MIN-PAGES is 0, then this type will not be swept by SGC.
+      Otherwise this is the minimum number of pages to make available to
+-     SGC. MAX-PAGES is the upper limit of such pages.  Only pages with
++     SGC.  MAX-PAGES is the upper limit of such pages.  Only pages with
+      PERCENT-FREE objects on them, will be assigned to SGC. A list of
+      the previous values for min, max and percent are returned.
+@@ -7397,7 +7309,6 @@ example:
+       (match-beginning 3) ==> -1
+       (match-end 3) ==> -1
+-
+    In the above example the return value of ‘1’ (which is ‘> -1’)
+ indicates that a match was found.  The entire match runs from 1 to 4.
+ Rule 4 specifies that (ab|a) gets first shot at the input string and
+@@ -7642,7 +7553,7 @@ File: gcl-si.info,  Node: Compiler Defin
+      (compile-file "foo2.lisp")
+      This would create foo1.fn and foo2.fn.  These may be loaded using
+-     LOAD. Each time compile-file is called the data base is cleared.
++     LOAD.  Each time compile-file is called the data base is cleared.
+      Immediately after the compilation, the data base consists of data
+      from the compilation.  Thus if you wished to find functions called
+      but not defined in the current file, you could do
+@@ -7693,8 +7604,7 @@ File: gcl-si.info,  Node: Compiler Defin
+           or
+           (mapcar 'load (directory "*.fn")) (compiler::list-undefined-functions)
+-
+- -- Function: COMPILER-DEFAULT-TYPE (pathname)
++ -- Function: *COMPILER-DEFAULT-TYPE* (pathname)
+      Package:COMPILER
+      Allows you to set the default file extension for compiler source
+@@ -7737,13 +7647,6 @@ File: gcl-si.info,  Node: Compiler Defin
+           >
+-
+- -- Function: COMPILER-RESET-TYPE ()
+-     Package:COMPILER
+-
+-     Resets the default compiler input file extension to the GCL
+-     historical value of #".lsp".
+-
+  -- Variable: *CC*
+      Package:COMPILER Has value a string which controls which C compiler
+      is used by GCL. Usually this string is obtained from the
+@@ -8290,8 +8193,10 @@ Appendix A Function Index
+ * -:                                     User Interface.      (line  10)
+ * *:                                     Numbers.             (line 557)
+-* *MAKE-CONSTANT:                        System Definitions.  (line 292)
+-* *MAKE-SPECIAL:                         System Definitions.  (line 387)
++* *COMPILER-DEFAULT-TYPE*:               Compiler Definitions.
++                                                              (line  86)
++* *MAKE-CONSTANT:                        System Definitions.  (line 280)
++* *MAKE-SPECIAL:                         System Definitions.  (line 364)
+ * /:                                     Numbers.             (line 199)
+ * /=:                                    Numbers.             (line  72)
+ * +:                                     Numbers.             (line 658)
+@@ -8303,26 +8208,25 @@ Appendix A Function Index
+ * 1-:                                    Numbers.             (line 411)
+ * 1+:                                    Numbers.             (line 208)
+ * ABS:                                   Numbers.             (line 707)
+-* ACCEPT:                                System Definitions.  (line 894)
++* ACCEPT:                                System Definitions.  (line 829)
+ * ACCEPT-SOCKET-CONNECTION:              System Definitions.  (line  18)
+ * ACONS:                                 Lists.               (line 254)
+ * ACOS:                                  Numbers.             (line 603)
+ * ACOSH:                                 Numbers.             (line 631)
+-* ADDRESS:                               System Definitions.  (line 405)
++* ADDRESS:                               System Definitions.  (line 382)
+ * ADJOIN:                                Lists.               (line 383)
+ * ADJUST-ARRAY:                          Sequences and Arrays and Hash Tables.
+                                                               (line 549)
+ * ADJUSTABLE-ARRAY-P:                    Sequences and Arrays and Hash Tables.
+                                                               (line 250)
+-* ALLOCATE:                              GCL Specific.        (line 108)
++* ALLOCATE:                              GCL Specific.        (line 102)
+ * ALLOCATE-CONTIGUOUS-PAGES:             System Definitions.  (line  24)
+-* ALLOCATE-GROWTH:                       System Definitions.  (line 652)
+-* ALLOCATE-RELOCATABLE-PAGES:            System Definitions.  (line  62)
+-* ALLOCATE-SGC:                          System Definitions.  (line 643)
+-* ALLOCATED:                             System Definitions.  (line 365)
+-* ALLOCATED-CONTIGUOUS-PAGES:            System Definitions.  (line  68)
+-* ALLOCATED-PAGES:                       System Definitions.  (line  56)
+-* ALLOCATED-RELOCATABLE-PAGES:           System Definitions.  (line  45)
++* ALLOCATE-GROWTH:                       System Definitions.  (line 587)
++* ALLOCATE-RELOCATABLE-PAGES:            System Definitions.  (line  50)
++* ALLOCATE-SGC:                          System Definitions.  (line 578)
++* ALLOCATED:                             System Definitions.  (line 342)
++* ALLOCATED-CONTIGUOUS-PAGES:            System Definitions.  (line  56)
++* ALLOCATED-RELOCATABLE-PAGES:           System Definitions.  (line  39)
+ * ALPHA-CHAR-P:                          Characters.          (line 151)
+ * ALPHANUMERICP:                         Characters.          (line 230)
+ * AND:                                   Special Forms and Functions.
+@@ -8336,8 +8240,8 @@ Appendix A Function Index
+ * APROPOS-LIST:                          Symbols.             (line 315)
+ * AREF:                                  Sequences and Arrays and Hash Tables.
+                                                               (line 634)
+-* ARGC:                                  System Definitions.  (line 418)
+-* ARGV:                                  System Definitions.  (line 465)
++* ARGC:                                  System Definitions.  (line 395)
++* ARGV:                                  System Definitions.  (line 437)
+ * ARRAY-DIMENSION:                       Sequences and Arrays and Hash Tables.
+                                                               (line 108)
+ * ARRAY-DIMENSIONS:                      Sequences and Arrays and Hash Tables.
+@@ -8366,8 +8270,8 @@ Appendix A Function Index
+ * ATAN:                                  Numbers.             (line 456)
+ * ATANH:                                 Numbers.             (line 471)
+ * ATOM:                                  Lists.               (line 559)
+-* BDS-VAL:                               System Definitions.  (line 302)
+-* BDS-VAR:                               System Definitions.  (line 109)
++* BDS-VAL:                               System Definitions.  (line 290)
++* BDS-VAR:                               System Definitions.  (line  97)
+ * BIT:                                   Sequences and Arrays and Hash Tables.
+                                                               (line 618)
+ * BIT-AND:                               Numbers.             (line 284)
+@@ -8395,10 +8299,9 @@ Appendix A Function Index
+ * BOTH-CASE-P:                           Characters.          (line  20)
+ * BOUNDP:                                Symbols.             (line 230)
+ * BREAK:                                 User Interface.      (line 120)
+-* BREAK-FUNCTION:                        System Definitions.  (line 782)
++* BREAK-FUNCTION:                        System Definitions.  (line 717)
+ * BUTLAST:                               Lists.               (line 281)
+-* BY:                                    GCL Specific.        (line  39)
+-* BYE:                                   GCL Specific.        (line 219)
++* BYE:                                   GCL Specific.        (line 212)
+ * BYTE:                                  Numbers.             (line 251)
+ * BYTE-POSITION:                         Numbers.             (line 298)
+ * BYTE-SIZE:                             Numbers.             (line 341)
+@@ -8421,8 +8324,7 @@ Appendix A Function Index
+                                                               (line 528)
+ * CATCH:                                 Special Forms and Functions.
+                                                               (line 487)
+-* CATCH-BAD-SIGNALS:                     System Definitions.  (line 331)
+-* CATCH-FATAL:                           System Definitions.  (line 554)
++* CATCH-FATAL:                           System Definitions.  (line 489)
+ * CCASE:                                 Special Forms and Functions.
+                                                               (line  62)
+ * CDAAAR:                                Lists.               (line 482)
+@@ -8466,14 +8368,14 @@ Appendix A Function Index
+ * CHAR>=:                                Characters.          (line 115)
+ * CHARACTER:                             Characters.          (line 174)
+ * CHARACTERP:                            Characters.          (line 141)
+-* CHDIR:                                 System Definitions.  (line 251)
++* CHDIR:                                 System Definitions.  (line 239)
+ * CHECK-TYPE:                            Type.                (line  39)
+ * CIS:                                   Numbers.             (line 717)
+ * CLEAR-INPUT:                           Streams and Reading. (line 284)
+ * CLEAR-OUTPUT:                          Streams and Reading. (line 162)
+-* CLINES:                                GCL Specific.        (line  93)
++* CLINES:                                GCL Specific.        (line  87)
+ * CLOSE:                                 Streams and Reading. (line 393)
+-* CLOSE-FASD:                            System Definitions.  (line 724)
++* CLOSE-FASD:                            System Definitions.  (line 659)
+ * CLRHASH:                               Sequences and Arrays and Hash Tables.
+                                                               (line 412)
+ * CODE-CHAR:                             Characters.          (line  83)
+@@ -8481,14 +8383,10 @@ Appendix A Function Index
+ * COMMONP:                               Type.                (line  27)
+ * COMPILE:                               Compilation.         (line   6)
+ * COMPILE-FILE:                          Compilation.         (line  77)
+-* COMPILED-FUNCTION-NAME:                System Definitions.  (line 125)
++* COMPILED-FUNCTION-NAME:                System Definitions.  (line 113)
+ * COMPILED-FUNCTION-P:                   Compilation.         (line 196)
+-* COMPILER-DEFAULT-TYPE:                 Compiler Definitions.
+-                                                              (line  87)
+ * COMPILER-LET:                          Special Forms and Functions.
+                                                               (line 559)
+-* COMPILER-RESET-TYPE:                   Compiler Definitions.
+-                                                              (line 131)
+ * COMPLEX:                               Numbers.             (line 568)
+ * COMPLEXP:                              Numbers.             (line 507)
+ * CONCATENATE:                           Sequences and Arrays and Hash Tables.
+@@ -8500,12 +8398,12 @@ Appendix A Function Index
+ * CONSP:                                 Lists.               (line  55)
+ * CONSTANTP:                             Type.                (line  16)
+ * COPY-ALIST:                            Lists.               (line 287)
+-* COPY-ARRAY-PORTION:                    GCL Specific.        (line 213)
++* COPY-ARRAY-PORTION:                    GCL Specific.        (line 206)
+ * COPY-LIST:                             Lists.               (line 190)
+ * COPY-READTABLE:                        Streams and Reading. (line 447)
+ * COPY-SEQ:                              Sequences and Arrays and Hash Tables.
+                                                               (line  17)
+-* COPY-STREAM:                           System Definitions.  (line 257)
++* COPY-STREAM:                           System Definitions.  (line 245)
+ * COPY-SYMBOL:                           Symbols.             (line 131)
+ * COPY-TREE:                             Lists.               (line 554)
+ * COS:                                   Numbers.             (line 443)
+@@ -8518,26 +8416,26 @@ Appendix A Function Index
+                                                               (line 380)
+ * CTYPECASE:                             Special Forms and Functions.
+                                                               (line 733)
+-* DBL:                                   System Definitions.  (line 768)
++* DBL:                                   System Definitions.  (line 703)
+ * DECF:                                  Numbers.             (line 448)
+ * DECLARE:                               Special Forms and Functions.
+                                                               (line 173)
+ * DECODE-FLOAT:                          Numbers.             (line 366)
+ * DECODE-UNIVERSAL-TIME:                 Operating System Definitions.
+                                                               (line  42)
+-* DEFCFUN:                               GCL Specific.        (line  44)
++* DEFCFUN:                               GCL Specific.        (line  39)
+ * DEFCONSTANT:                           Special Forms and Functions.
+                                                               (line 675)
+ * DEFDLFUN:                              External Shared Libraries.
+                                                               (line   6)
+-* DEFENTRY:                              GCL Specific.        (line 159)
+-* DEFINE-COMPILER-MACRO:                 System Definitions.  (line 760)
+-* DEFINE-INLINE-FUNCTION:                System Definitions.  (line 750)
++* DEFENTRY:                              GCL Specific.        (line 153)
++* DEFINE-COMPILER-MACRO:                 System Definitions.  (line 695)
++* DEFINE-INLINE-FUNCTION:                System Definitions.  (line 685)
+ * DEFINE-MODIFY-MACRO:                   Special Forms and Functions.
+                                                               (line 497)
+ * DEFINE-SETF-METHOD:                    Special Forms and Functions.
+                                                               (line 539)
+-* DEFLA:                                 GCL Specific.        (line 142)
++* DEFLA:                                 GCL Specific.        (line 136)
+ * DEFMACRO:                              Special Forms and Functions.
+                                                               (line 216)
+ * DEFPARAMETER:                          Special Forms and Functions.
+@@ -8569,7 +8467,7 @@ Appendix A Function Index
+                                                               (line  67)
+ * DIRECTORY-NAMESTRING:                  Streams and Reading. (line 455)
+ * DISASSEMBLE:                           Characters.          (line  59)
+-* DISPLACED-ARRAY-P:                     System Definitions.  (line 459)
++* DISPLACED-ARRAY-P:                     System Definitions.  (line 431)
+ * DO:                                    Streams and Reading. (line 188)
+ * DO-ALL-SYMBOLS:                        Iteration and Tests. (line  28)
+ * DO-EXTERNAL-SYMBOLS:                   Iteration and Tests. (line   6)
+@@ -8602,7 +8500,7 @@ Appendix A Function Index
+ * EQUALP:                                Iteration and Tests. (line  74)
+ * ERROR:                                 Special Forms and Functions.
+                                                               (line 691)
+-* ERROR-SET:                             System Definitions.  (line 115)
++* ERROR-SET:                             System Definitions.  (line 103)
+ * ETYPECASE:                             Special Forms and Functions.
+                                                               (line 120)
+ * EVAL:                                  Special Forms and Functions.
+@@ -8616,12 +8514,12 @@ Appendix A Function Index
+ * EXP:                                   Numbers.             (line 360)
+ * EXPORT:                                Symbols.             (line 208)
+ * EXPT:                                  Numbers.             (line 616)
+-* FASLINK:                               System Definitions.  (line 483)
++* FASLINK:                               System Definitions.  (line 450)
+ * FBOUNDP:                               Symbols.             (line 164)
+ * FCEILING:                              Numbers.             (line 216)
+ * FFLOOR:                                Numbers.             (line 642)
+ * FIFTH:                                 Lists.               (line  40)
+-* FILE:                                  System Definitions.  (line 220)
++* FILE:                                  System Definitions.  (line 208)
+ * FILE-AUTHOR:                           Operating System Definitions.
+                                                               (line  24)
+ * FILE-LENGTH:                           Streams and Reading. (line 102)
+@@ -8641,11 +8539,11 @@ Appendix A Function Index
+ * FIND-IF-NOT:                           Sequences and Arrays and Hash Tables.
+                                                               (line 695)
+ * FIND-PACKAGE:                          Symbols.             (line 307)
+-* FIND-SHARING-TOP:                      System Definitions.  (line 736)
++* FIND-SHARING-TOP:                      System Definitions.  (line 671)
+ * FIND-SYMBOL:                           Symbols.             (line 149)
+ * FINISH-OUTPUT:                         Streams and Reading. (line 172)
+ * FIRST:                                 Lists.               (line 372)
+-* FIXNUMP:                               System Definitions.  (line 297)
++* FIXNUMP:                               System Definitions.  (line 285)
+ * FLET:                                  Special Forms and Functions.
+                                                               (line 264)
+ * FLOAT:                                 Numbers.             (line 534)
+@@ -8659,15 +8557,15 @@ Appendix A Function Index
+ * FORCE-OUTPUT:                          Streams and Reading. (line 126)
+ * FORMAT:                                Streams and Reading. (line 519)
+ * FOURTH:                                Lists.               (line 318)
+-* FP-INPUT-STREAM:                       System Definitions.  (line 798)
+-* FP-OUTPUT-STREAM:                      System Definitions.  (line 804)
+-* FREAD:                                 System Definitions.  (line 598)
++* FP-INPUT-STREAM:                       System Definitions.  (line 733)
++* FP-OUTPUT-STREAM:                      System Definitions.  (line 739)
++* FREAD:                                 System Definitions.  (line 533)
+ * FREEZE-DEFSTRUCT:                      System Definitions.  (line  32)
+ * FRESH-LINE:                            Streams and Reading. (line 488)
+ * FROUND:                                Numbers.             (line 380)
+-* FRS-BDS:                               System Definitions.  (line 280)
+-* FRS-IHS:                               System Definitions.  (line 318)
+-* FRS-VS:                                System Definitions.  (line 516)
++* FRS-BDS:                               System Definitions.  (line 268)
++* FRS-IHS:                               System Definitions.  (line 306)
++* FRS-VS:                                System Definitions.  (line 483)
+ * FTRUNCATE:                             Numbers.             (line 169)
+ * FUNCALL:                               Special Forms and Functions.
+                                                               (line 518)
+@@ -8675,9 +8573,9 @@ Appendix A Function Index
+                                                               (line 354)
+ * FUNCTIONP:                             Special Forms and Functions.
+                                                               (line 253)
+-* FWRITE:                                System Definitions.  (line 590)
+-* GBC:                                   GCL Specific.        (line 116)
+-* GBC-TIME:                              System Definitions.  (line 581)
++* FWRITE:                                System Definitions.  (line 525)
++* GBC:                                   GCL Specific.        (line 110)
++* GBC-TIME:                              System Definitions.  (line 516)
+ * GCD:                                   Numbers.             (line 763)
+ * GENSYM:                                Symbols.             (line   6)
+ * GENTEMP:                               Symbols.             (line 247)
+@@ -8685,7 +8583,7 @@ Appendix A Function Index
+ * GET-DECODED-TIME:                      Operating System Definitions.
+                                                               (line   6)
+ * GET-DISPATCH-MACRO-CHARACTER:          Streams and Reading. (line 470)
+-* GET-HOLE-SIZE:                         System Definitions.  (line  80)
++* GET-HOLE-SIZE:                         System Definitions.  (line  68)
+ * GET-INTERNAL-REAL-TIME:                Operating System Definitions.
+                                                               (line 169)
+ * GET-INTERNAL-RUN-TIME:                 Operating System Definitions.
+@@ -8697,17 +8595,16 @@ Appendix A Function Index
+                                                               (line   9)
+ * GET-SETF-METHOD-MULTIPLE-VALUE:        Special Forms and Functions.
+                                                               (line 480)
+-* GET-STRING-INPUT-STREAM-INDEX:         System Definitions.  (line  98)
++* GET-STRING-INPUT-STREAM-INDEX:         System Definitions.  (line  86)
+ * GET-UNIVERSAL-TIME:                    Operating System Definitions.
+                                                               (line 144)
+-* GETENV:                                System Definitions.  (line 476)
++* GETENV:                                System Definitions.  (line 443)
+ * GETF:                                  Lists.               (line 424)
+ * GETHASH:                               Sequences and Arrays and Hash Tables.
+                                                               (line 297)
+ * GO:                                    Special Forms and Functions.
+                                                               (line 604)
+ * GPROF-QUIT:                            Compilation.         (line 210)
+-* GPROF-SET:                             Compilation.         (line 221)
+ * GPROF-START:                           Compilation.         (line 201)
+ * GRAPHIC-CHAR-P:                        Characters.          (line 124)
+ * HASH-TABLE-COUNT:                      Sequences and Arrays and Hash Tables.
+@@ -8715,21 +8612,21 @@ Appendix A Function Index
+ * HASH-TABLE-P:                          Sequences and Arrays and Hash Tables.
+                                                               (line 375)
+ * HELP:                                  Structures.          (line  33)
+-* HELP*:                                 GCL Specific.        (line 133)
++* HELP*:                                 GCL Specific.        (line 127)
+ * HOST-NAMESTRING:                       Operating System Definitions.
+                                                               (line  13)
+ * IDENTITY:                              Special Forms and Functions.
+                                                               (line 665)
+ * IF:                                    Special Forms and Functions.
+                                                               (line 696)
+-* IHS-FUN:                               System Definitions.  (line 286)
+-* IHS-VS:                                System Definitions.  (line 136)
++* IHS-FUN:                               System Definitions.  (line 274)
++* IHS-VS:                                System Definitions.  (line 124)
+ * IMAGPART:                              Numbers.             (line 422)
+ * IMPORT:                                Symbols.             (line 278)
+ * IN-PACKAGE:                            Symbols.             (line 176)
+ * INCF:                                  Numbers.             (line 115)
+ * INFO:                                  Doc.                 (line  12)
+-* INIT-SYSTEM:                           System Definitions.  (line 263)
++* INIT-SYSTEM:                           System Definitions.  (line 251)
+ * INPUT-STREAM-P:                        Streams and Reading. (line 410)
+ * INSPECT:                               User Interface.      (line  82)
+ * INT-CHAR:                              Numbers.             (line  58)
+@@ -8737,7 +8634,7 @@ Appendix A Function Index
+ * INTEGER-LENGTH:                        Numbers.             (line 581)
+ * INTEGERP:                              Numbers.             (line 427)
+ * INTERN:                                Symbols.             (line 201)
+-* INTERPRET:                             System Definitions.  (line 228)
++* INTERPRET:                             System Definitions.  (line 216)
+ * INTERSECTION:                          Lists.               (line 215)
+ * ISQRT:                                 Numbers.             (line 732)
+ * KEYWORDP:                              Symbols.             (line  14)
+@@ -8824,7 +8721,7 @@ Appendix A Function Index
+ * MAKE-STRING-INPUT-STREAM:              Streams and Reading. (line  48)
+ * MAKE-STRING-INPUT-STREAM <1>:          User Interface.      (line  29)
+ * MAKE-STRING-OUTPUT-STREAM:             Streams and Reading. (line 583)
+-* MAKE-STRING-OUTPUT-STREAM-FROM-STRING: System Definitions.  (line 392)
++* MAKE-STRING-OUTPUT-STREAM-FROM-STRING: System Definitions.  (line 369)
+ * MAKE-SYMBOL:                           Symbols.             (line  67)
+ * MAKE-SYNONYM-STREAM:                   Streams and Reading. (line 589)
+ * MAKE-TWO-WAY-STREAM:                   Streams and Reading. (line 437)
+@@ -8839,11 +8736,10 @@ Appendix A Function Index
+ * MAPL:                                  Lists.               (line 113)
+ * MAPLIST:                               Lists.               (line 524)
+ * MASK-FIELD:                            Numbers.             (line 110)
+-* MATCH-BEGINNING:                       System Definitions.  (line 854)
+-* MATCH-END:                             System Definitions.  (line 861)
++* MATCH-BEGINNING:                       System Definitions.  (line 789)
++* MATCH-END:                             System Definitions.  (line 796)
+ * MAX:                                   Numbers.             (line 515)
+-* MAXIMUM-ALLOCATABLE-PAGES:             System Definitions.  (line  39)
+-* MAXIMUM-CONTIGUOUS-PAGES:              System Definitions.  (line  74)
++* MAXIMUM-CONTIGUOUS-PAGES:              System Definitions.  (line  62)
+ * MEMBER:                                Lists.               (line 590)
+ * MEMBER-IF:                             Lists.               (line 548)
+ * MEMBER-IF-NOT:                         Lists.               (line 454)
+@@ -8868,12 +8764,12 @@ Appendix A Function Index
+                                                               (line 648)
+ * NAME-CHAR:                             Characters.          (line   6)
+ * NAMESTRING:                            Streams and Reading. (line 382)
+-* NANI:                                  System Definitions.  (line 424)
++* NANI:                                  System Definitions.  (line 401)
+ * NBUTLAST:                              Lists.               (line  97)
+ * NCONC:                                 Lists.               (line  45)
+ * NINTERSECTION:                         Lists.               (line   6)
+ * NINTH:                                 Lists.               (line 477)
+-* NLOAD:                                 System Definitions.  (line 775)
++* NLOAD:                                 System Definitions.  (line 710)
+ * NOT:                                   Special Forms and Functions.
+                                                               (line 670)
+ * NOTANY:                                Sequences and Arrays and Hash Tables.
+@@ -8909,12 +8805,12 @@ Appendix A Function Index
+ * NUNION:                                Lists.               (line 274)
+ * ODDP:                                  Numbers.             (line 722)
+ * OPEN:                                  Streams and Reading. (line  22)
+-* OPEN-FASD:                             System Definitions.  (line 684)
++* OPEN-FASD:                             System Definitions.  (line 619)
+ * OPEN-NAMED-SOCKET:                     System Definitions.  (line  11)
+ * OR:                                    Special Forms and Functions.
+                                                               (line 723)
+ * OUTPUT-STREAM-P:                       Streams and Reading. (line 252)
+-* OUTPUT-STREAM-STRING:                  System Definitions.  (line  92)
++* OUTPUT-STREAM-STRING:                  System Definitions.  (line  80)
+ * PACKAGE-NAME:                          Symbols.             (line 302)
+ * PACKAGE-NICKNAMES:                     Symbols.             (line 273)
+ * PACKAGE-SHADOWING-SYMBOLS:             Symbols.             (line 195)
+@@ -8951,8 +8847,7 @@ Appendix A Function Index
+ * PRINT:                                 Streams and Reading. (line 112)
+ * PROBE-FILE:                            Streams and Reading. (line 643)
+ * PROCLAIM:                              Compilation.         (line 184)
+-* PROCLAMATION:                          GCL Specific.        (line 152)
+-* PROF:                                  System Definitions.  (line 531)
++* PROCLAMATION:                          GCL Specific.        (line 146)
+ * PROG:                                  Special Forms and Functions.
+                                                               (line 613)
+ * PROG*:                                 Special Forms and Functions.
+@@ -8971,7 +8866,7 @@ Appendix A Function Index
+ * PSETQ:                                 Symbols.             (line  73)
+ * PUSH:                                  Lists.               (line 349)
+ * PUSHNEW:                               Lists.               (line 395)
+-* PUTPROP:                               System Definitions.  (line  51)
++* PUTPROP:                               System Definitions.  (line  45)
+ * QUOTE:                                 Special Forms and Functions.
+                                                               (line 308)
+ * RANDOM:                                Numbers.             (line 809)
+@@ -8987,7 +8882,7 @@ Appendix A Function Index
+ * READ-CHAR:                             Streams and Reading. (line 239)
+ * READ-CHAR-NO-HANG:                     Streams and Reading. (line 481)
+ * READ-DELIMITED-LIST:                   Streams and Reading. (line 677)
+-* READ-FASD-TOP:                         System Definitions.  (line 717)
++* READ-FASD-TOP:                         System Definitions.  (line 652)
+ * READ-FROM-STRING:                      Streams and Reading. (line 203)
+ * READ-LINE:                             Streams and Reading. (line 318)
+ * READ-PRESERVING-WHITESPACE:            Streams and Reading. (line  72)
+@@ -9017,8 +8912,8 @@ Appendix A Function Index
+                                                               (line 396)
+ * REQUIRE:                               Operating System Definitions.
+                                                               (line  90)
+-* RESET-GBC-COUNT:                       System Definitions.  (line 324)
+-* RESET-STACK-LIMITS:                    System Definitions.  (line 342)
++* RESET-GBC-COUNT:                       System Definitions.  (line 312)
++* RESET-STACK-LIMITS:                    System Definitions.  (line 319)
+ * REST:                                  Lists.               (line 242)
+ * RETURN:                                Special Forms and Functions.
+                                                               (line 429)
+@@ -9033,9 +8928,9 @@ Appendix A Function Index
+ * ROUND:                                 Numbers.             (line 543)
+ * RPLACA:                                Lists.               (line 264)
+ * RPLACD:                                Lists.               (line 449)
+-* RUN-PROCESS:                           System Definitions.  (line 828)
+-* SAVE:                                  GCL Specific.        (line 124)
+-* SAVE-SYSTEM:                           System Definitions.  (line 437)
++* RUN-PROCESS:                           System Definitions.  (line 763)
++* SAVE:                                  GCL Specific.        (line 118)
++* SAVE-SYSTEM:                           System Definitions.  (line 414)
+ * SBIT:                                  Sequences and Arrays and Hash Tables.
+                                                               (line  34)
+ * SCALE-FLOAT:                           Numbers.             (line 626)
+@@ -9048,21 +8943,21 @@ Appendix A Function Index
+ * SET-DIFFERENCE:                        Lists.               (line 530)
+ * SET-DISPATCH-MACRO-CHARACTER:          Streams and Reading. (line  85)
+ * SET-EXCLUSIVE-OR:                      Lists.               (line 407)
+-* SET-HOLE-SIZE:                         System Definitions.  (line 275)
+-* SET-LOG-MAXPAGE-BOUND:                 GCL Specific.        (line 102)
++* SET-HOLE-SIZE:                         System Definitions.  (line 263)
++* SET-LOG-MAXPAGE-BOUND:                 GCL Specific.        (line  96)
+ * SET-MACRO-CHARACTER:                   Streams and Reading. (line 119)
+ * SET-SYNTAX-FROM-CHAR:                  Streams and Reading. (line 403)
+ * SETF:                                  Special Forms and Functions.
+                                                               (line  27)
+ * SETQ:                                  Symbols.             (line 101)
+ * SEVENTH:                               Lists.               (line 173)
+-* SGC-ON:                                System Definitions.  (line 607)
++* SGC-ON:                                System Definitions.  (line 542)
+ * SHADOW:                                Symbols.             (line 157)
+ * SHADOWING-IMPORT:                      Symbols.             (line  36)
+ * SHIFTF:                                Numbers.             (line 265)
+ * SHORT-SITE-NAME:                       Operating System Definitions.
+                                                               (line  61)
+-* SIGNATURE:                             System Definitions.  (line 224)
++* SIGNATURE:                             System Definitions.  (line 212)
+ * SIGNUM:                                Numbers.             (line   6)
+ * SIMPLE-BIT-VECTOR-P:                   Sequences and Arrays and Hash Tables.
+                                                               (line 568)
+@@ -9076,7 +8971,7 @@ Appendix A Function Index
+ * SLEEP:                                 Operating System Definitions.
+                                                               (line 201)
+ * SOCKET:                                System Definitions.  (line   6)
+-* SOCKET <1>:                            System Definitions.  (line 864)
++* SOCKET <1>:                            System Definitions.  (line 799)
+ * SOFTWARE-TYPE:                         Operating System Definitions.
+                                                               (line 189)
+ * SOFTWARE-VERSION:                      Operating System Definitions.
+@@ -9087,7 +8982,7 @@ Appendix A Function Index
+                                                               (line 371)
+ * SPECIAL-FORM-P:                        Special Forms and Functions.
+                                                               (line 325)
+-* SPECIALP:                              System Definitions.  (line  86)
++* SPECIALP:                              System Definitions.  (line  74)
+ * SQRT:                                  Numbers.             (line 621)
+ * STABLE-SORT:                           Sequences and Arrays and Hash Tables.
+                                                               (line 645)
+@@ -9100,7 +8995,7 @@ Appendix A Function Index
+ * STRING-CAPITALIZE:                     Sequences and Arrays and Hash Tables.
+                                                               (line  39)
+ * STRING-CHAR-P:                         Characters.          (line  45)
+-* STRING-CONCATENATE:                    System Definitions.  (line 103)
++* STRING-CONCATENATE:                    System Definitions.  (line  91)
+ * STRING-DOWNCASE:                       Sequences and Arrays and Hash Tables.
+                                                               (line 611)
+ * STRING-EQUAL:                          Sequences and Arrays and Hash Tables.
+@@ -9111,7 +9006,7 @@ Appendix A Function Index
+                                                               (line 684)
+ * STRING-LESSP:                          Sequences and Arrays and Hash Tables.
+                                                               (line 746)
+-* STRING-MATCH:                          System Definitions.  (line 842)
++* STRING-MATCH:                          System Definitions.  (line 777)
+ * STRING-NOT-EQUAL:                      Sequences and Arrays and Hash Tables.
+                                                               (line 120)
+ * STRING-NOT-GREATERP:                   Sequences and Arrays and Hash Tables.
+@@ -9120,7 +9015,7 @@ Appendix A Function Index
+                                                               (line 623)
+ * STRING-RIGHT-TRIM:                     Sequences and Arrays and Hash Tables.
+                                                               (line 126)
+-* STRING-TO-OBJECT:                      System Definitions.  (line 308)
++* STRING-TO-OBJECT:                      System Definitions.  (line 296)
+ * STRING-TRIM:                           Sequences and Arrays and Hash Tables.
+                                                               (line 478)
+ * STRING-UPCASE:                         Sequences and Arrays and Hash Tables.
+@@ -9139,7 +9034,7 @@ Appendix A Function Index
+                                                               (line  94)
+ * STRINGP:                               Sequences and Arrays and Hash Tables.
+                                                               (line 206)
+-* STRUCTUREP:                            System Definitions.  (line 130)
++* STRUCTUREP:                            System Definitions.  (line 118)
+ * SUBLIS:                                Lists.               (line 507)
+ * SUBSEQ:                                Sequences and Arrays and Hash Tables.
+                                                               (line  11)
+@@ -9178,7 +9073,7 @@ Appendix A Function Index
+                                                               (line 759)
+ * TIME:                                  Operating System Definitions.
+                                                               (line 181)
+-* TOP-LEVEL:                             System Definitions.  (line 507)
++* TOP-LEVEL:                             System Definitions.  (line 474)
+ * TRACE:                                 User Interface.      (line 131)
+ * TREE-EQUAL:                            Lists.               (line 414)
+ * TRUENAME:                              Streams and Reading. (line 460)
+@@ -9187,21 +9082,20 @@ Appendix A Function Index
+ * TYPECASE:                              Special Forms and Functions.
+                                                               (line 439)
+ * TYPEP:                                 Type.                (line  22)
+-* UNCATCH-BAD-SIGNALS:                   System Definitions.  (line 449)
+ * UNEXPORT:                              Symbols.             (line 267)
+ * UNINTERN:                              Symbols.             (line 260)
+ * UNION:                                 Lists.               (line 438)
+-* UNIVERSAL-ERROR-HANDLER:               System Definitions.  (line 142)
++* UNIVERSAL-ERROR-HANDLER:               System Definitions.  (line 130)
+ * UNLESS:                                Special Forms and Functions.
+                                                               (line 639)
+ * UNREAD-CHAR:                           Streams and Reading. (line 387)
+ * UNTRACE:                               User Interface.      (line  16)
+ * UNUSE-PACKAGE:                         Symbols.             (line 112)
+-* UNWATCH:                               System Definitions.  (line 241)
++* UNWATCH:                               System Definitions.  (line 229)
+ * UNWIND-PROTECT:                        Special Forms and Functions.
+                                                               (line 706)
+ * UPPER-CASE-P:                          Characters.          (line 157)
+-* USE-FAST-LINKS:                        GCL Specific.        (line 224)
++* USE-FAST-LINKS:                        GCL Specific.        (line 217)
+ * USE-PACKAGE:                           Symbols.             (line  59)
+ * USER-HOMEDIR-PATHNAME:                 Operating System Definitions.
+                                                               (line  51)
+@@ -9219,9 +9113,9 @@ Appendix A Function Index
+                                                               (line 260)
+ * VECTORP:                               Sequences and Arrays and Hash Tables.
+                                                               (line 666)
+-* VS:                                    System Definitions.  (line 454)
++* VS:                                    System Definitions.  (line 426)
+ * WARN:                                  User Interface.      (line 114)
+-* WATCH:                                 System Definitions.  (line 234)
++* WATCH:                                 System Definitions.  (line 222)
+ * WHEN:                                  Special Forms and Functions.
+                                                               (line  53)
+ * WITH-INPUT-FROM-STRING:                Streams and Reading. (line 273)
+@@ -9231,14 +9125,13 @@ Appendix A Function Index
+ * WRITE:                                 Streams and Reading. (line 661)
+ * WRITE-BYTE:                            Streams and Reading. (line 139)
+ * WRITE-CHAR:                            Streams and Reading. (line 494)
+-* WRITE-DEBUG-SYMBOLS:                   System Definitions.  (line 522)
+-* WRITE-FASD-TOP:                        System Definitions.  (line 712)
++* WRITE-FASD-TOP:                        System Definitions.  (line 647)
+ * WRITE-LINE:                            Streams and Reading. (line 654)
+ * WRITE-STRING:                          Streams and Reading. (line 210)
+ * WRITE-TO-STRING:                       Streams and Reading. (line 356)
+-* XDR-OPEN:                              System Definitions.  (line 790)
+-* XDR-READ:                              System Definitions.  (line 810)
+-* XDR-WRITE:                             System Definitions.  (line 817)
++* XDR-OPEN:                              System Definitions.  (line 725)
++* XDR-READ:                              System Definitions.  (line 745)
++* XDR-WRITE:                             System Definitions.  (line 752)
+ * Y-OR-N-P:                              Streams and Reading. (line 224)
+ * YES-OR-NO-P:                           Iteration and Tests. (line  38)
+ * ZEROP:                                 Numbers.             (line 480)
+--- gcl27-2.7.1.orig/info/gcl-tk.info
++++ gcl27-2.7.1/info/gcl-tk.info
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+@@ -12,7 +12,7 @@ END-INFO-DIR-ENTRY
\1f
+ Indirect:
+ gcl-tk.info-1: 270
+-gcl-tk.info-2: 302275
++gcl-tk.info-2: 302276
\1f
+ Tag Table:
+ (Indirect)
+--- gcl27-2.7.1.orig/info/gcl-tk.info-1
++++ gcl27-2.7.1/info/gcl-tk.info-1
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+@@ -6650,3 +6650,4 @@ Keywords
+ --------
+ geometry manager, location, packer, parcel, propagation, size
++
+--- gcl27-2.7.1.orig/info/gcl-tk.info-2
++++ gcl27-2.7.1/info/gcl-tk.info-2
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+@@ -9,7 +9,6 @@ START-INFO-DIR-ENTRY
+ * gcl-tk: (gcl-tk.info). GNU Common Lisp Tk Manual
+ END-INFO-DIR-ENTRY
+-
\1f
+ File: gcl-tk.info,  Node: place,  Next: raise,  Prev: pack,  Up: Control
+@@ -1051,7 +1050,7 @@ wm :positionfrom window ?who?
+      source has been set explicitly to program.
+ wm :protocol window ?name? ?command?
+      This command is used to manage window manager protocols such as
+-     WM_DELETE_WINDOW. Name is the name of an atom corresponding to a
++     WM_DELETE_WINDOW.  Name is the name of an atom corresponding to a
+      window manager protocol, such as WM_DELETE_WINDOW or
+      WM_SAVE_YOURSELF or WM_TAKE_FOCUS. If both name and command are
+      specified, then command is associated with the protocol specified
diff --git a/debian/patches/Version_2_7_2pre14 b/debian/patches/Version_2_7_2pre14
new file mode 100644 (file)
index 0000000..331dfe1
--- /dev/null
@@ -0,0 +1,83 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Mar, 19 2026 21:14:51 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -276,12 +276,18 @@
+ (defun commasep (x)
+   (mapcon (lambda (x) (if (cdr x) (list (car x) ",") (list (car x)))) x))
+-(defun ms (&rest r) 
+-  (apply 'concatenate 'string 
+-       (mapcar (lambda (x) 
+-                 (cond ((listp x) (apply 'ms x))
+-                       ((stringp x) x)
+-                       ((write-to-string x)))) r)))
++(defun ms (&rest r)
++  (labels ((msh (x)
++           (cond ((< (length x) (1- call-arguments-limit))
++                  (apply 'concatenate 'string
++                         (mapcar (lambda (x)
++                                   (cond ((listp x) (msh x))
++                                         ((stringp x) x)
++                                         ((write-to-string x))))
++                                 x)))
++                 ((let ((y (nthcdr (- call-arguments-limit 2) x)))
++                    (concatenate 'string (msh (ldiff x y)) (msh y)))))))
++    (msh r)))
+ (defun nords (n &aux (i -1))
+   (mapl (lambda (x) (setf (car x) (incf i))) (make-list n)))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre13"
++"Version_2_7_2pre14"
+--- gcl27-2.7.1.orig/mod/gcl_defpackage.lsp
++++ gcl27-2.7.1/mod/gcl_defpackage.lsp
+@@ -67,13 +67,11 @@
+ ;;; -----------------------------------------------------------------
+ (unless (find-package :defpackage)
+-  (make-package :defpackage :use '(:cl)))
++  (make-package :defpackage :use '(:cl :sloop)))
+ (in-package :defpackage)
+ (export '(defpackage))
+-(use-package :SLOOP)
+-
+ (defmacro DEFPACKAGE (name &rest options)
+   (declare (optimize (safety 1)))
+   "DEFPACKAGE - DEFINED-PACKAGE-NAME {OPTION}*                        [Macro]
+--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in
++++ gcl27-2.7.1/unixport/init_raw.lsp.in
+@@ -6,7 +6,7 @@
+ (make-package :compiler :use '(:cl :si :cstruct))
+ (make-package :sloop :use '(:cl))
+ (make-package :ansi-loop :use'(:cl))
+-(make-package :defpackage :use '(:cl))
++(make-package :defpackage :use '(:cl :sloop))
+ (make-package :tk :use '(:cl :sloop))
+ (make-package :fpe :use '(:cl))
+ (make-package :cltl1-compat)
diff --git a/debian/patches/Version_2_7_2pre15 b/debian/patches/Version_2_7_2pre15
new file mode 100644 (file)
index 0000000..c3d7c42
--- /dev/null
@@ -0,0 +1,75 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Apr, 13 2026 17:26:39 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -87,6 +87,10 @@
+                 (let ((val (symbol-value form)))
+                   (or 
+                    (c1constant-value val nil)
++                   (when (functionp val)
++                     (multiple-value-bind (s c n) (fle val)
++                       (declare (ignore c))
++                       (c1function (list (or n s)))))
+                    `(location ,(make-info :type (object-type val)) (VV ,(add-constant form))))))
+                                       ;                 ((c1var form))))
+                  ((c1expr-avct (c1var form))))) ;FIXME pcl
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre14"
++"Version_2_7_2pre15"
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -406,14 +406,12 @@
+       (d pd (cdr pd)))
+     (values ps created)))
+-(defun get-byte-stream-nchars (s)
+-  (let* ((tp (stream-element-type s))(ctp (cmp-norm-tp tp)))
+-    (labels ((ts (i) (when (<= i 32)
+-                     (if (tp<= ctp (cmp-norm-tp `(unsigned-byte ,(* i char-length))))
+-                         i (ts (1+ i))))))
+-      (cond ((tp<= ctp #tcharacter) 1)
+-          ((ts 0))
+-          (1)))))
++(defun get-byte-stream-nchars (s);restricted
++  (let* ((tp (stream-element-type s)))
++    (typecase tp
++      ((cons (member signed-byte unsigned-byte) (cons (integer 0) null))
++       (values (ceiling (cadr tp) 8)))
++      (t 1))))
+ (defun parse-integer (s &key start end (radix 10) junk-allowed)
+   (declare (optimize (safety 1)))
+--- gcl27-2.7.1.orig/o/print.d
++++ gcl27-2.7.1/o/print.d
+@@ -1068,7 +1068,7 @@ print_symbol_name_body(object x,int pp)
+     write_ch('|');
+   for (lw=i=0;i<VLEN(x);i++) {
+-    j = x->st.st_self[i];
++    j = (uchar)x->st.st_self[i];
+     if (PRINTescape && (j == '|' || j == '\\'))
+       write_ch('\\');
+     fc=convertible_upper(j) ? 1 : 
diff --git a/debian/patches/Version_2_7_2pre16 b/debian/patches/Version_2_7_2pre16
new file mode 100644 (file)
index 0000000..34febb0
--- /dev/null
@@ -0,0 +1,613 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Apr, 21 2026 12:11:46 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/ansi-tests/read-byte.lsp
++++ gcl27-2.7.1/ansi-tests/read-byte.lsp
+@@ -79,6 +79,22 @@
+       collect (list i b1 b2))
+   nil)
++(deftest read-byte.5
++  (let ((s (open "foo.txt"
++               :direction :output
++               :if-exists :supersede
++               :element-type '(unsigned-byte 8))))
++    (values
++     (write-byte 255 s)
++     (close s)
++     (progn
++       (setq s (open "foo.txt"
++                   :direction :input
++                   :element-type '(signed-byte 8)))
++       (read-byte s))
++     (close s)))
++  255 t -1 t)
++
+ ;;; Error tests
+ (deftest read-byte.error.1
+--- gcl27-2.7.1.orig/ansi-tests/read-sequence.lsp
++++ gcl27-2.7.1/ansi-tests/read-sequence.lsp
+@@ -171,6 +171,12 @@
+   (make-array 10 :initial-element nil :fill-pointer 5)
+   (:end nil) "abcdefghijk" 5 #(#\a #\b #\c #\d #\e))
++;; Fast read-sequence
++
++(def-read-sequence-test read-sequence.fast-char.1
++  (make-array 5 :element-type 'character)
++  (:end nil) "abcdefghijk" 5 "abcde")
++
+ ;;; Nil vectors
+ (deftest read-sequence.nil-vector.1
+@@ -231,6 +237,63 @@
+ (def-read-sequence-bv-test read-sequence.bv.7 #*00000000000000 (:end 6)
+   6 #*01100100000000)
++;; Fast read-sequence -> fread cases
++
++(defmacro def-read-sequence-fread-test (name seql tp data args &rest expected)
++  `(deftest ,name
++     ;; Create output file
++     (progn
++       (let (os)
++       (unwind-protect
++           (progn
++             (setq os (open "temp.dat" :direction :output
++                            :element-type ',tp
++                            :if-exists :supersede))
++             (loop for i in (coerce ,data 'list)
++                   do (if (eq ',tp 'character) (write-char i os) (write-byte i os))))
++         (when os (close os))))
++       (let (is (seq (make-array ,seql :element-type ',tp)))
++       (unwind-protect
++           (progn
++             (setq is (open "temp.dat" :direction :input
++                            :element-type ',tp))
++             (values
++              (read-sequence seq is ,@args)
++              seq))
++         (when is (close is)))))
++     ,@expected))
++
++(def-read-sequence-fread-test
++    read-sequence.fread.1 20
++  character "abcdefghijk" ()
++  11 "abcdefghijk         ")
++
++(def-read-sequence-fread-test
++    read-sequence.fread.2 20
++  character "abcdefghijk" (:start 1)
++  12 " abcdefghijk        ")
++
++(def-read-sequence-fread-test
++    read-sequence.fread.3 20
++  character "abcdefghijk" (:start 1 :end 3)
++  3 " ab                 ")
++
++(def-read-sequence-fread-test
++    read-sequence.fread.4 20
++  character "abcdefghijk" (:end 3)
++  3 "abc                 ")
++
++(def-read-sequence-fread-test
++    read-sequence.fread.5 20
++  fixnum #(1 2 3 4 5 6 7 8 9 10 11)  (:end 3)
++  3 #(1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
++
++(def-read-sequence-fread-test
++    read-sequence.fread.6 20
++  (unsigned-byte 16) #(1 2 3 4 5 6 7 8 9 10 11)  (:start 2 :end 6)
++  6 #(0 0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
++
++
+ ;;; Error cases
+ (deftest read-sequence.error.1
+--- gcl27-2.7.1.orig/ansi-tests/write-sequence.lsp
++++ gcl27-2.7.1/ansi-tests/write-sequence.lsp
+@@ -115,19 +115,19 @@
+ (defmacro def-write-sequence-bv-test (name input args expected)
+   `(deftest ,name
+-     (let ((s ,input)
+-         (expected ,expected))
+-       (with-open-file
+-      (os "tmp.dat" :direction :output
+-          :element-type '(unsigned-byte 8)
+-          :if-exists :supersede)
+-       (assert (eq (write-sequence s os ,@args) s)))
+-       (with-open-file
+-      (is "tmp.dat" :direction :input
+-          :element-type '(unsigned-byte 8))
+-       (loop for i from 0 below (length expected)
+-             for e = (elt expected i)
+-             always (eql (read-byte is) e))))
++       (let ((s ,input)
++           (expected ,expected))
++       (with-open-file
++           (os "tmp.dat" :direction :output
++               :element-type '(unsigned-byte 8)
++               :if-exists :supersede)
++         (assert (eq (write-sequence s os ,@args) s)))
++       (with-open-file
++           (is "tmp.dat" :direction :input
++               :element-type '(unsigned-byte 8))
++         (loop for i from 0 below (length expected)
++               for e = (elt expected i)
++               always (eql (read-byte is) e))))
+      t))
+ (def-write-sequence-bv-test write-sequence.bv.1 #*00111010
+@@ -143,6 +143,43 @@
+ (def-write-sequence-bv-test write-sequence.bv.6 #*00111010
+   (:start 1 :end nil :end 4) #*0111010)
++(defmacro def-write-sequence-tp-test (name tp input args expected)
++  `(deftest ,name
++       (let ((s (coerce ',input `(vector ,',tp)))
++           (expected ',expected))
++       (with-open-file
++           (os "tmp.dat" :direction :output
++               :element-type ',tp
++               :if-exists :supersede)
++         (assert (eq (write-sequence s os ,@args) s)))
++       (with-open-file
++           (is "tmp.dat" :direction :input
++               :element-type ',tp)
++               (loop for i from 0 below (length expected)
++                     for e = (elt expected i)
++                     always (eql (if (eq ',tp 'character) (read-char is) (read-byte is)) e))))
++     t))
++
++(def-write-sequence-tp-test write-sequence.tp.1 (unsigned-byte 8)
++  (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.2 (unsigned-byte 16)
++  (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.3 (signed-byte 32)
++  (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.4 (signed-byte 64)
++  (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.5 (unsigned-byte 128)
++  (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.6 character
++  (#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\1) () (#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\1))
++(def-write-sequence-tp-test write-sequence.tp.7 (unsigned-byte 16)
++  (1 2 3 4 5 6 7 8 9 10) (:start 1) (2 3 4 5 6 7 8 9 10))
++(def-write-sequence-tp-test write-sequence.tp.8 (unsigned-byte 16)
++  (1 2 3 4 5 6 7 8 9 10) (:end 4) (1 2 3))
++(def-write-sequence-tp-test write-sequence.tp.9 (unsigned-byte 16)
++  (1 2 3 4 5 6 7 8 9 10) (:start 1 :end 4) (2 3))
++(def-write-sequence-tp-test write-sequence.tp.10 (unsigned-byte 16)
++  (1 2 3 4 5 6 7 8 9 10) (:start 1 :end nil :end 4) (2 3 4 5 6 7 8 9 10))
+ ;;; Error tests
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -483,18 +483,16 @@
+ (defun stub-decl (name args d &optional vp
+                 &aux (i 0))
+-  (concatenate
+-   'string
++  (ms
+    "static " d " " name ;" LnkT" num
+    "("
+-   (apply 'concatenate 'string
+-        (mapcan (lambda (x)
+-                  (if (eq x '*)
+-                      (list ",...")
+-                      (list (if (plusp i) ","  "")
+-                            (rep-type x)
+-                            (progn (incf i) (if vp (concatenate 'string "x" (write-to-string i)) "")))))
+-                (if (eq (car args) '*) (cons t args) args)))
++   (mapcan (lambda (x)
++           (if (eq x '*)
++               (list ",...")
++               (list (if (plusp i) ","  "")
++                     (rep-type x)
++                     (progn (incf i) (if vp (list "x" (write-to-string i)) "")))))
++         (if (eq (car args) '*) (cons t args) args))
+    ")"))
+@@ -503,8 +501,7 @@
+              (i (max n (- (length args) n)));FIXME
+              (si (write-to-string i))
+              (d (declaration-type (rep-type (if (link-arg-p type) type t)))))
+-  (concatenate
+-   'string
++  (ms
+    (stub-decl (concatenate 'string "LnkT" num) args d t)
+    "{
+       int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" si) ";
+@@ -512,14 +509,12 @@
+       "
+    (let ((j 0))
+-     (apply 'concatenate 'string
+-          (mapcan (lambda (x &aux (sj (write-to-string (incf j))))
+-                    (declare (ignore x))
+-                    (list "FOO[" sj "-1]=(object)x" sj ";"))
+-                  (make-list i))))
++     (mapcan (lambda (x &aux (sj (write-to-string (incf j))))
++             (declare (ignore x))
++             (list "FOO[" sj "-1]=(object)x" sj ";"))
++           (make-list i)))
+    (when va
+-     (concatenate
+-      'string
++     (list
+       "
+       {
+           va_list ap;
+@@ -539,6 +534,7 @@
+    "FOO);
+ }"))
++
+ (defun wt-function-link (x)
+   (let* ((name (pop x))
+        (num (pop x))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp
+@@ -427,7 +427,6 @@
+ ;(si::putprop 'read-byte 'co1read-byte 'co1)
+ #-cygwin(si::putprop 'read-char 'co1read-char 'co1)
+-(si::putprop 'write-byte 'co1write-byte 'co1)
+ (si::putprop 'write-char 'co1write-char 'co1)
+ (defun fast-read (args read-fun)
+@@ -483,15 +482,6 @@
+            (declare (type ,(result-type stream) ,str))
+            ,(cfast-write (list (car args) str) write-fun tp)))))))
+-
+-(defun co1write-byte (f args)
+-  (declare (ignore f))
+-  (let ((tem (cfast-write args 'write-byte 'fixnum)))
+-    (when tem 
+-      (let ((*space* 10))
+-      (c1expr tem)))))
+-
+-
+ (defun co1write-char (f args)
+   (declare (ignore f))
+   (let* ((tem (cfast-write args 'write-char 'character)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -844,7 +844,7 @@
+                         (cond (f (setq inl (lit-string-merge inl (fourth f) i lna (1- lff)))
+                                  (setq lev (min lev 1));FIXME?
+ ;                                (when (> lev (seventh f)) (setq lev (seventh f))); (break)
+-                                 (incf i lff)(copy-list ff));FIXME?
++                                 (incf i lff)(incf lna (1- lff))(copy-list ff));FIXME?
+                               ((incf i)(list x))))
+                       nargs))
+        (form (list 'lit info key inl nargs nil lev oargs nil (make-vs info))))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre15"
++"Version_2_7_2pre16"
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -347,18 +347,41 @@
+      ))
+-(defun restrict-stream-element-type (tp)
+-  (cond ((member tp '(unsigned-byte signed-byte)) tp)
+-      ((or (member tp '(character :default)) (subtypep tp 'character)) 'character)
++(defun encapsulate-stream-element-type (tp)
++  (cond ((subtypep tp 'character) 'character)
+       ((subtypep tp 'integer)
+        (let* ((ntp (tp-bnds (cmp-norm-tp tp)))
+               (min (car ntp))(max (cdr ntp))
+               (s (if (or (eq min '*) (< min 0)) 'signed-byte 'unsigned-byte))
+               (lim (unless (or (eq min '*) (eq max '*)) (max (integer-length min) (integer-length max))))
+               (lim (if (and lim (eq s 'signed-byte)) (1+ lim) lim)))
+-         (if lim `(,s ,lim) s)))
++         (if lim `(,s ,lim) s)))))
++
++(defconstant +array-stream-types+ (coerce (mapcar 'encapsulate-stream-element-type +array-types+) '(vector t)))
++
++(defun restrict-stream-element-type (tp &aux etp);standardize....
++  (cond ((member tp '(:default character)) 'character)
++      ((eq tp 'unsigned-byte) '(unsigned-byte 8))
++      ((eq tp 'signed-byte) '(signed-byte 8))
++      ((typep tp '(cons (member unsigned-byte signed-byte) (cons (integer 0) null)))
++       (let ((tp (list (car tp) (* char-length (ceiling (cadr tp) char-length)))))
++         (or (find tp +array-stream-types+ :test 'equal) tp)))
++      ((subtypep tp 'character) 'character)
++      ((setq etp (encapsulate-stream-element-type tp))
++       (restrict-stream-element-type etp))
+       ((check-type tp (member character integer)))))
++(defun stream-fp (strm outp)
++  (when (open-stream-p strm)
++    (typecase strm
++      (file-synonym-stream (stream-fp (symbol-value (synonym-stream-symbol strm)) outp))
++      (two-way-stream (stream-fp
++                     (if outp (two-way-stream-output-stream strm) (two-way-stream-input-stream strm))
++                     outp))
++      (file-io-stream (c-stream-fp strm))
++      (file-input-stream (unless outp (c-stream-fp strm)))
++      (file-output-stream (when outp (c-stream-fp strm))))))
++
+ (defun load-pathname-exists (z)
+   (or (probe-file z)
+       (when *allow-gzipped-file*
+@@ -417,54 +440,110 @@
+   (declare (optimize (safety 1)))
+   (parse-integer-int s start end radix junk-allowed))
+-(defun write-byte (j s &aux (i j))
++(defun stream-element-type (s)
+   (declare (optimize (safety 1)))
+-  (check-type j integer)
+-  (check-type s stream)
+-  (dotimes (k (get-byte-stream-nchars s) j)
+-    (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s)
+-    (setq i (ash i #.(- char-length)))))
++  (check-type s stream);etypecase
++  (typecase s
++    ((or broadcast-stream concatenated-stream)
++     (let ((o (c-stream-object0 s)))
++       (when o (stream-element-type (car o)))))
++    ((or two-way-stream echo-stream)
++     (stream-element-type (c-stream-object0 s)))
++    (synonym-stream
++     (stream-element-type (symbol-value (c-stream-object0 s))))
++    (file-stream;define socket
++     (c-stream-object0 s))
++    (t 'character)))
++(deftype binary-stream-element-type nil 'list)
++(defconstant +char-shft+ (1- (integer-length char-length)))
+-(defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0))
++(defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s)))
+   (declare (optimize (safety 1)))
+   (check-type s stream)
+-  (dotimes (k (get-byte-stream-nchars s) i)
+-    (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value)))
+-                           (if (eq ch eof-value) (return ch) (char-code ch)))
+-                         (* k char-length))))))
++  (check-type tp binary-stream-element-type)
++  (let* ((n (if tp (ash (cadr tp) (- +char-shft+)) 1)))
++    (dotimes (k n (let ((nb (ash n +char-shft+)))
++                (if (when (eq (car tp) 'signed-byte) (logbitp (1- nb) i)) (- i (ash 1 nb)) i)))
++      (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value)))
++                             (if (eq ch eof-value) (return ch) (char-code ch)))
++                           (ash k +char-shft+)))))))
++
++(defun write-byte (j s &aux (i j) (tp (stream-element-type s)))
++  (declare (optimize (safety 1)))
++  (check-type j integer)
++  (check-type tp binary-stream-element-type)
++  (let ((n (ash (cadr tp) (- +char-shft+))))
++    (dotimes (k n j)
++      (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s)
++      (setq i (ash i #.(- char-length))))))
++
++#-pre-gcl
++(defdlfun (:fixnum "fread") :fixnum :fixnum :fixnum :fixnum)
++
++(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil)))
++  #+pre-gcl
++  (declare (ignore seq tp start end fp))
++  #-pre-gcl
++  (when fp
++    (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
++      (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
++      (when (<= start end ln)
++        (c+ start
++            (|libc|:|fread|
++                   (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
++
++
+ (defun read-sequence (seq strm &key (start 0) end
+                     &aux (l (listp seq))(seqp (when l (nthcdr start seq)))
+-                      (cp (eq (stream-element-type strm) 'character)))
++                      (tp (stream-element-type strm)))
+   (declare (optimize (safety 1)));FIXME
+   (check-type seq sequence)
+   (check-type strm stream)
+-  (check-type start (integer 0))
+-  (check-type end (or null (integer 0)))
+-  (labels ((set-cons (x z) (check-type x cons) (setf (car x) z) (cdr x)))
+-    (the seqbnd
+-       (reduce (lambda (y x &aux (z (if cp (read-char strm nil 'eof) (read-byte strm nil 'eof))))
+-                 (declare (seqind y)(ignorable x))
+-                 (when (eq z 'eof) (return-from read-sequence y))
+-                 (if l (setq seqp (set-cons seqp z)) (setf (aref seq y) z))
+-                 (1+ y))
+-               seq :initial-value start :start start :end end))))
++  (check-type start seqind)
++  (check-type end (or null seqind))
++  (the seqbnd
++       (or (unless l (read-sequence-using-fread seq strm tp start end))
++         (labels ((set-cons (x z) (check-type x cons) (setf (car x) z) (cdr x))
++                  (mread nil (if (eq tp 'character) (read-char strm nil 'eof) (read-byte strm nil 'eof))))
++           (reduce (lambda (y x &aux (z (mread)))
++                     (declare (seqind y)(ignorable x))
++                     (when (eq z 'eof) (return-from read-sequence y))
++                     (if l (setq seqp (set-cons seqp z)) (setf (aref seq y) z))
++                     (1+ y))
++                   seq :initial-value start :start start :end end)))))
++
++#-pre-gcl
++(defdlfun (:fixnum "fwrite") :fixnum :fixnum :fixnum :fixnum)
++
++(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t)))
++  #+pre-gcl
++  (declare (ignore seq tp start end fp))
++  #-pre-gcl
++  (when fp
++    (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
++      (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
++      (when (<= start end ln)
++        (c+ start
++            (|libc|:|fwrite|
++                   (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
+ (defun write-sequence (seq strm &key (start 0) end
+-                         &aux (cp (eq (stream-element-type strm) 'character)))
++                     &aux (tp (stream-element-type strm)))
+   (declare (optimize (safety 1)))
+   (check-type seq sequence)
+   (check-type strm stream)
+   (check-type start (integer 0))
+   (check-type end (or null (integer 0)))
+-  (reduce (lambda (y x)
+-                 (declare (seqind y))
+-                 (if cp (write-char x strm) (write-byte x strm))
+-                 (1+ y))
+-       seq :initial-value start :start start :end end)
++  (or (unless (listp seq) (write-sequence-using-fwrite seq strm tp start end))
++      (reduce (lambda (y x)
++              (declare (seqind y))
++              (if (eq tp 'character) (write-char x strm) (write-byte x strm))
++              (1+ y))
++            seq :initial-value start :start start :end end))
+   seq)
+ (defun open (f &key (direction :input)
+@@ -481,6 +560,11 @@
+                     if-exists iesp if-does-not-exist idnesp external-format)))
+     (when (typep s 'stream) (c-set-stream-object1 s pf) s)))
++(defun open-stream-p (strm)
++  (declare (optimize (safety 1)))
++  (check-type strm stream)
++  (not (logbitp #.(let ((s (open "/dev/null")))(close s) (1- (integer-length (c-stream-flags s))))
++              (c-stream-flags strm))))
+ (defun file-length (x)
+   (declare (optimize (safety 1)))
+--- gcl27-2.7.1.orig/o/error.c
++++ gcl27-2.7.1/o/error.c
+@@ -400,9 +400,9 @@ void
+ check_arg_failed(int n)
+ {
+   if (n<vs_top-vs_base)
+-    FEtoo_few_arguments(vs_base,vs_top);
+-  else
+     FEtoo_many_arguments(vs_base,vs_top);
++  else
++    FEtoo_few_arguments(vs_base,vs_top);
+ }
+ void
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -301,59 +301,6 @@ BEGIN:
+       }
+ }
+-static object
+-stream_element_type(object strm) {
+-
+-      object x;
+-
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_input:
+-      case smm_output:
+-      case smm_io: 
+-      case smm_probe:
+-              return(strm->sm.sm_object0);
+-
+-      case smm_socket:
+-          return (sLcharacter);
+-          
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
+-
+-      case smm_broadcast:
+-              x = strm->sm.sm_object0;
+-              if (endp(x))
+-                      return(Ct);
+-              return(stream_element_type(x->c.c_car));
+-
+-      case smm_concatenated:
+-              x = strm->sm.sm_object0;
+-              if (endp(x))
+-                      return(Ct);
+-              return(stream_element_type(x->c.c_car));
+-
+-      case smm_two_way:
+-              return(stream_element_type(STREAM_INPUT_STREAM(strm)));
+-
+-      case smm_echo:
+-              return(stream_element_type(STREAM_INPUT_STREAM(strm)));
+-
+-      case smm_string_input:
+-              return(sLcharacter);
+-
+-      case smm_string_output:
+-              return(sLcharacter);
+-
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-              return(FALSE);
+-      }
+-}
+-
+ void
+ setup_stream_buffer(object x) {
+ #ifdef NO_SETBUF
+@@ -1972,14 +1919,6 @@ LFD(Loutput_stream_p)()
+               vs_base[0] = Cnil;
+ }
+-LFD(Lstream_element_type)()
+-{
+-      check_arg(1);
+-
+-      check_type_stream(&vs_base[0]);
+-      vs_base[0] = stream_element_type(vs_base[0]);
+-}
+-
+ @(defun close (strm &key abort)
+ @
+       check_type_stream(&strm);
+@@ -2856,7 +2795,6 @@ gcl_init_file_function()
+       make_function("STREAMP", Lstreamp);
+       make_function("INPUT-STREAM-P", Linput_stream_p);
+       make_function("OUTPUT-STREAM-P", Loutput_stream_p);
+-      make_function("STREAM-ELEMENT-TYPE", Lstream_element_type);
+       make_function("CLOSE", Lclose);
+ /*    make_si_function("OPEN1", Lopen1); */
diff --git a/debian/patches/Version_2_7_2pre17 b/debian/patches/Version_2_7_2pre17
new file mode 100644 (file)
index 0000000..d24b7ad
--- /dev/null
@@ -0,0 +1,2362 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Apr, 23 2026 12:53:44 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp
+@@ -356,7 +356,7 @@
+     
+ (defun lit-loc (key inl args bind safety oargs syms stores &aux (tp (get key 'cmp-lisp-type)))
+-  (declare (ignore bind safety oargs stores))
++  (declare (ignore bind safety oargs syms stores))
+   (let ((sig (list (mapcar (lambda (x) (info-type (cadr x))) args) tp))) 
+     (get-inline-loc (list (car sig) (cadr sig) (flags rfa) inl) args)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmplam.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmplam.lsp
+@@ -75,7 +75,7 @@
+        
+ (defun c1lambda-expr (args osrc &aux (regs (pop args)) requireds tv
+                          doc body ss is ts other-decls (ovars *vars*)
+-                         (*vars* *vars*) narg (info (make-info)) ctps)
++                         (*vars* *vars*) narg (info (make-info)) ctps *undefined-vars*)
+   (multiple-value-setq (body ss ts is other-decls doc ctps) (c1body args t));FIXME parse-body-header
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre16"
++"Version_2_7_2pre17"
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -26,6 +26,56 @@
+ (in-package :si)
++(eval-when (:load-toplevel :compile-toplevel :execute)
++  (defun type-smm (tp)
++    (cadr (cadr (assoc tp +r+)))))
++
++(defun make-broadcast-stream (&rest streams)
++  (declare (optimize (safety 1)))
++  (dolist (stream streams)
++    (locally (check-type stream (and stream (satisfies output-stream-p)))))
++  (let ((x (allocate-basic-stream #.(type-smm 'broadcast-stream))))
++    (c-set-stream-object0 x streams)
++    x))
++
++(defun make-concatenated-stream (&rest streams)
++  (declare (optimize (safety 1)))
++  (dolist (stream streams)
++    (locally (check-type stream (and stream (satisfies input-stream-p)))))
++  (let ((x (allocate-basic-stream #.(type-smm 'concatenated-stream))))
++    (c-set-stream-object0 x streams)
++    x))
++
++(defun make-synonym-stream (sym)
++  (declare (optimize (safety 1)))
++  (check-type sym symbol)
++  (labels ((fsp (s)
++           (typecase s
++             (file-stream #.(type-smm 'file-synonym-stream))
++             (file-synonym-stream (fsp (symbol-value (c-stream-object0 s))))
++             (t #.(type-smm 'non-file-synonym-stream)))))
++    (let ((x (allocate-basic-stream (fsp (symbol-value sym)))))
++      (c-set-stream-object0 x sym)
++      x)))
++
++(defun make-two-way-stream (in out)
++  (declare (optimize (safety 1)))
++  (check-type in (and stream (satisfies input-stream-p)))
++  (check-type out (and stream (satisfies output-stream-p)))
++  (let ((x (allocate-basic-stream #.(type-smm 'two-way-stream))))
++    (c-set-stream-object0 x in)
++    (c-set-stream-object1 x out)
++    x))
++
++(defun make-echo-stream (in out)
++  (declare (optimize (safety 1)))
++  (check-type in (and stream (satisfies input-stream-p)))
++  (check-type out (and stream (satisfies output-stream-p)))
++  (let ((x (allocate-basic-stream #.(type-smm 'echo-stream))))
++    (c-set-stream-object0 x in)
++    (c-set-stream-object1 x out)
++    x))
++
+ (defun concatenated-stream-streams (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream concatenated-stream)
+@@ -75,10 +125,28 @@
+   (check-type string string)
+   (check-type start seqind)
+   (check-type end (or null seqind))
+-  (let ((l (- (or end (length string)) start)))
+-    (make-string-input-stream-int
+-     (make-array l :element-type (array-element-type string) :displaced-to string :displaced-index-offset start :fill-pointer 0)
+-     0 l)))
++  (let* ((l (- (or end (length string)) start))
++       (x (allocate-basic-stream #.(type-smm 'string-input-stream))))
++    (c-set-stream-object0 x
++     (make-array l
++               :element-type (array-element-type string)
++               :displaced-to string :displaced-index-offset start
++               :fill-pointer 0))
++    x))
++
++(defun make-string-output-stream (&key (element-type 'character))
++  (declare (optimize (safety 1))(ignore element-type))
++  (let ((x (allocate-basic-stream #.(type-smm 'string-output-stream))))
++    (c-set-stream-object0 x (make-vector 'character 64 t 0 nil 0 nil nil))
++    x))
++
++(defun get-output-stream-string (strm)
++  (declare (optimize (safety 1)))
++  (check-type strm string-output-stream)
++  (let ((x (copy-seq (c-stream-object0 strm))))
++    (c-set-stream-int strm 0)
++    (setf (fill-pointer (c-stream-object0 strm)) 0)
++    x))
+ (defun get-string-input-stream-index (stream &aux (s (c-stream-object0 stream)))
+   (+ (fill-pointer s) (multiple-value-bind (a b) (array-displacement s) (declare (ignore a)) b)))
+@@ -104,6 +172,11 @@
+     (setf (fill-pointer (c-stream-object0 *sosm*)) 0)
+     *sosm*))
++(defun make-string-output-stream-from-string (string)
++  (let ((x (allocate-basic-stream #.(type-smm 'string-output-stream))))
++    (c-set-stream-object0 x string)
++    x))
++
+ (defmacro with-output-to-string ((var &optional string &key (element-type ''character)) . body)
+   (declare (optimize (safety 2)))
+   (multiple-value-bind (doc decls ctps body) (parse-body-header body)
+@@ -472,6 +545,7 @@
+ (defun write-byte (j s &aux (i j) (tp (stream-element-type s)))
+   (declare (optimize (safety 1)))
+   (check-type j integer)
++  (check-type s stream)
+   (check-type tp binary-stream-element-type)
+   (let ((n (ash (cadr tp) (- +char-shft+))))
+     (dotimes (k n j)
+@@ -560,6 +634,17 @@
+                     if-exists iesp if-does-not-exist idnesp external-format)))
+     (when (typep s 'stream) (c-set-stream-object1 s pf) s)))
++(defun close (stream &key abort)
++  (declare (optimize (safety 1))(ignore abort))
++  (check-type stream stream)
++  (close-stream stream))
++
++(defun socket (port &key host server async myaddr myport daemon)
++  (socket-int port host server async myaddr myport daemon))
++
++(defun string-to-object (string)
++  (string-to-object-int (make-string-input-stream string)))
++
+ (defun open-stream-p (strm)
+   (declare (optimize (safety 1)))
+   (check-type strm stream)
+--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp
++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp
+@@ -43,7 +43,7 @@
+                                                 (string-concatenate "(" (substitute #\^ #\! (subseq x 0 2)) (subseq x 2) ")")))
+                                         (cons #v"\\*" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "]*)") "(.*)")))
+                                         (cons #v"\\?" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "])") "(.)")))
+-                                        (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore x y))(string-concatenate "\\" x)))))
++                                        (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore y))(string-concatenate "\\" x)))))
+ (defconstant +physical-pathname-defaults+ '(("" "" "" "")
+                                           ("" "" "" "")
+--- gcl27-2.7.1.orig/lsp/gcl_sym.lsp
++++ gcl27-2.7.1/lsp/gcl_sym.lsp
+@@ -48,8 +48,8 @@
+ (defun symbol-value (s)
+   (declare (optimize (safety 1)))
+   (check-type s symbol)
+-  (if (boundp s) (c-symbol-dbind s)
+-    (error 'unbound-variable :name s)))
++  (assert (boundp s) nil 'unbound-variable :name s)
++  (c-symbol-dbind s))
+ (defun boundp (s)
+   (declare (optimize (safety 1)))
+--- gcl27-2.7.1.orig/lsp/gcl_typeof.lsp
++++ gcl27-2.7.1/lsp/gcl_typeof.lsp
+@@ -16,10 +16,6 @@
+        (i (real-rep (if s x (cadr x)))))
+     (complex r i)))
+-(defun make-string-output-stream (&key (element-type 'character))
+-  (declare (optimize (safety 1))(ignore element-type))
+-  (make-string-output-stream-int))
+-
+ (defconstant +r+ `(,@(when (plusp most-positive-immfix) `((immfix 1)))
+                  (bfix  most-positive-fixnum)
+                  (bignum (1+ most-positive-fixnum))
+@@ -40,18 +36,18 @@
+                  (hash-table-equal (make-hash-table :test 'equal))
+                  (hash-table-equalp (make-hash-table :test 'equalp))
+                  (package *package*)
+-                 (file-input-stream (let ((s (open-int "/dev/null" :input 'character nil nil nil nil :default))) (close s) s))
+-                 (file-output-stream (let ((s (open-int "/dev/null" :output 'character nil nil nil nil :default))) (close s) s))
+-                 (file-io-stream (let ((s (open-int "/dev/null" :io 'character nil nil nil nil :default))) (close s) s))
+-                 (file-probe-stream (let ((s (open-int "/dev/null" :probe 'character nil nil nil nil :default))) (close s) s))
+-                 (file-synonym-stream (let* ((*standard-output* (open-int "/dev/null" :output 'character nil nil nil nil :default))) (close *standard-output*)  (make-synonym-stream '*standard-output*)))
+-                 (non-file-synonym-stream *debug-io*);FIXME
+-                 (broadcast-stream (make-broadcast-stream))
+-                 (concatenated-stream (make-concatenated-stream))
+-                 (two-way-stream *terminal-io*)
+-                 (echo-stream (make-echo-stream *standard-output* *standard-output*))
+-                 (string-input-stream (make-string-input-stream-int (make-vector 'character 0 t 0 nil 0 nil nil) 0 0))
+-                 (string-output-stream (make-string-output-stream));FIXME user defined, socket
++                 (file-input-stream (allocate-basic-stream 0))
++                 (file-output-stream (allocate-basic-stream 1))
++                 (file-io-stream (allocate-basic-stream 2))
++                 (file-probe-stream (allocate-basic-stream 3))
++                 (file-synonym-stream (allocate-basic-stream 4))
++                 (non-file-synonym-stream (allocate-basic-stream 5));FIXME
++                 (broadcast-stream (allocate-basic-stream 6));(make-broadcast-stream)
++                 (concatenated-stream (allocate-basic-stream 7))
++                 (two-way-stream (allocate-basic-stream 8))
++                 (echo-stream (allocate-basic-stream 9))
++                 (string-input-stream (allocate-basic-stream 10))
++                 (string-output-stream (allocate-basic-stream 11));FIXME user defined, socket
+                  (random-state (make-random-state)) 
+                  (readtable (standard-readtable)) 
+                  (non-standard-object-compiled-function (function eq))
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -188,119 +188,6 @@ DEFUN("TERMINAL-INPUT-STREAM-P",object,f
+   RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_input && x->sm.sm_fp && isatty(fileno(x->sm.sm_fp)) ? Ct : Cnil);
+ }
+-
+-/*
+-      Input_stream_p(strm) answers
+-      if stream strm is an input stream or not.
+-      It does not check if it really is possible to read
+-      from the stream,
+-      but only checks the mode of the stream (sm_mode).
+-*/
+-static bool
+-input_stream_p(object strm) {
+-
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_input:
+-              return(TRUE);
+-
+-      case smm_output:
+-              return(FALSE);
+-
+-      case smm_io:
+-      case smm_socket:  
+-              return(TRUE);
+-
+-      case smm_probe:
+-              return(FALSE);
+-
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
+-
+-      case smm_broadcast:
+-              return(FALSE);
+-
+-      case smm_concatenated:
+-              return(TRUE);
+-
+-      case smm_two_way:
+-              return(TRUE);
+-
+-      case smm_echo:
+-              return(TRUE);
+-
+-      case smm_string_input:
+-              return(TRUE);
+-
+-      case smm_string_output:
+-              return(FALSE);
+-
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-              return(FALSE);
+-      }
+-}
+-
+-/*
+-      Output_stream_p(strm) answers
+-      if stream strm is an output stream.
+-      It does not check if it really is possible to write
+-      to the stream,
+-      but only checks the mode of the stream (sm_mode).
+-*/
+-static bool
+-output_stream_p(object strm) {
+-
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_input:
+-              return(FALSE);
+-
+-      case smm_output:
+-              return(TRUE);
+-
+-      case smm_io:
+-      case smm_socket:  
+-              return(TRUE);
+-
+-      case smm_probe:
+-              return(FALSE);
+-
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
+-
+-      case smm_broadcast:
+-              return(TRUE);
+-
+-      case smm_concatenated:
+-              return(FALSE);
+-
+-      case smm_two_way:
+-              return(TRUE);
+-
+-      case smm_echo:
+-              return(TRUE);
+-
+-      case smm_string_input:
+-              return(FALSE);
+-
+-      case smm_string_output:
+-              return(TRUE);
+-
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-              return(FALSE);
+-      }
+-}
+-
+ void
+ setup_stream_buffer(object x) {
+ #ifdef NO_SETBUF
+@@ -328,6 +215,28 @@ static void
+ cannot_open(object);
+ static void
+ cannot_create(object);
++
++DEFUN("ALLOCATE-BASIC-STREAM",object,fSallocate_basic_stream,SI,1,1,NONE,OI,OO,OO,OO,(fixnum mode),"") {
++
++  object x;
++
++  BEGIN_NO_INTERRUPT;
++
++  x = alloc_object(t_stream);
++  x->sm.tt=x->sm.sm_mode = mode;
++  x->sm.sm_fp = NULL;
++  x->sm.sm_buffer = 0;
++  x->sm.sm_object0 = OBJNULL;
++  x->sm.sm_object1 = OBJNULL;
++  x->sm.sm_int = 0;
++  x->sm.sm_flags=0;
++
++  END_NO_INTERRUPT;
++
++  RETURN1(x);
++
++}
++
+ /*
+       Open_stream(fn, smm, if_exists, if_does_not_exist)
+       opens file fn with mode smm.
+@@ -338,7 +247,6 @@ open_stream(object fn,enum smmode smm, o
+   object x;
+   FILE *fp=NULL;
+-  vs_mark;
+   coerce_to_filename(fn,FN1);
+@@ -423,19 +331,12 @@ open_stream(object fn,enum smmode smm, o
+     break;
+   }
+-  vs_push(make_simple_string(FN1));
+-  x = alloc_object(t_stream);
+-  x->sm.tt=x->sm.sm_mode = (short)smm;
++  x=FFN(fSallocate_basic_stream)(smm);
+   x->sm.sm_fp = fp;
+-  x->sm.sm_buffer = 0;
+   x->sm.sm_object0 = sLcharacter;
+-  x->sm.sm_object1 = vs_head;
+-  x->sm.sm_int = 0;
+-  x->sm.sm_flags=0;
+-  vs_push(x);
++  x->sm.sm_object1 = make_simple_string(FN1);
+   setup_stream_buffer(x);
+-  vs_reset;
+   if (smm==smm_probe)
+     close_stream(x);
+@@ -447,18 +348,6 @@ open_stream(object fn,enum smmode smm, o
+ static void
+ gclFlushSocket(object);
+-DEFUN("OPEN-STREAM-P",object,fLopen_stream_p,LISP,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-
+-  check_type_stream(&x);
+-
+-  return GET_STREAM_FLAG(x,gcl_sm_closed) ? Cnil : Ct;
+-
+-}
+-    /*
+-      Close_stream(strm) closes stream strm.
+-      The abort_flag is not used now.
+-*/
+-
+ static int
+ pipe_designator_p(object x) {
+@@ -472,8 +361,8 @@ pipe_designator_p(object x) {
+ void
+ close_stream(object strm)  {
+-  if (FFN(fLopen_stream_p)(strm)==Cnil)
+-    return;
++  if (GET_STREAM_FLAG(strm,gcl_sm_closed))
++      return;
+   switch (strm->sm.sm_mode) {
+   case smm_output:
+@@ -530,8 +419,6 @@ close_stream(object strm)  {
+   case smm_echo:
+     STREAM_INPUT_STREAM(strm)=OBJNULL;
+     STREAM_OUTPUT_STREAM(strm)=OBJNULL;
+-    /*                close_stream(STREAM_INPUT_STREAM(strm)); */
+-    /*                close_stream(STREAM_OUTPUT_STREAM(strm)); */
+     break;
+   case smm_string_input:
+@@ -547,6 +434,12 @@ close_stream(object strm)  {
+ }
++DEFUN("CLOSE-STREAM",object,fSclose_stream,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") {
++  close_stream(strm);
++  RETURN1(Ct);
++}
++
++
+ DEFUN("INTERACTIVE-STREAM-P",object,fLinteractive_stream_p,LISP,1,1,NONE,OO,OO,OO,OO,(object strm),"") {
+   check_type_stream(&strm);
+@@ -600,54 +493,14 @@ fLinteractive_stream_p(object x) {
+ object
+ make_two_way_stream(object istrm,object ostrm) {
+-      object strm;
+-
+-      strm = alloc_object(t_stream);
+-      strm->sm.tt=strm->sm.sm_mode = (short)smm_two_way;
+-      strm->sm.sm_fp = NULL;
+-      strm->sm.sm_buffer = 0;
+-      STREAM_INPUT_STREAM(strm) = istrm;
+-      STREAM_OUTPUT_STREAM(strm) = ostrm;
+-      strm->sm.sm_int = 0;
+-      strm->sm.sm_flags=0;
+-      return(strm);
+-}
+-
+-static object
+-make_echo_stream(object istrm,object ostrm) {
+-
+-      object strm;
+-
+-      strm = make_two_way_stream(istrm, ostrm);
+-      strm->d.tt=strm->sm.sm_mode = (short)smm_echo;
+-      return(strm);
+-}
+-
+-DEFUN("MAKE-STRING-INPUT-STREAM-INT",object,fSmake_string_input_stream_int,SI,3,3,NONE,OO,II,OO,OO,
+-        (object strng,fixnum istart,fixnum iend),"") {
+-
+   object strm;
+-  massert(type_of(strng)==t_string);
+-  strm = alloc_object(t_stream);
+-  strm->sm.tt=strm->sm.sm_mode = (short)smm_string_input;
+-  strm->sm.sm_fp = NULL;
+-  strm->sm.sm_buffer = 0;
+-  strm->sm.sm_flags=0;
+-  STRING_STREAM_STRING(strm) = strng;
+-  strm->sm.sm_object1 = OBJNULL;
+-  STRING_INPUT_STREAM_NEXT(strm)= istart;
+-  STRING_INPUT_STREAM_END(strm)= iend;
+-
+-  RETURN1(strm);
++  strm=FFN(fSallocate_basic_stream)(smm_two_way);
++  strm->sm.sm_object0=istrm;
++  strm->sm.sm_object1=ostrm;
++  return(strm);
+ }
+-#ifdef STATIC_FUNCTION_POINTERS
+-object
+-fSmake_string_input_stream_int(object x,fixnum y,fixnum z) {
+-  return FFN(fSmake_string_input_stream_int)(x,y,z);
+-}
+-#endif
+ static bool
+ tty_stream_p(object strm) {
+@@ -696,43 +549,19 @@ tty_stream_p(object strm) {
+ DEFUN("TTY-STREAM-P",object,fStty_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+   return tty_stream_p(x)  ? Ct : Cnil;
+ }
+-DEFUN("STRING-INPUT-STREAM-P",object,fSstring_input_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  return type_of(x)==t_stream && x->sm.sm_mode == (short)smm_string_input ? Ct : Cnil;
+-}
+-DEFUN("STRING-OUTPUT-STREAM-P",object,fSstring_output_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  return type_of(x)==t_stream && x->sm.sm_mode == (short)smm_string_output ? Ct : Cnil;
+-}
+ object
+ make_string_output_stream(int line_length) {
+-      object strng, strm;
+-      vs_mark;
+-
+-      strng = alloc_string(line_length);
+-      strng->st.st_fillp = 0;
+-      strng->st.st_self = alloc_relblock(line_length);
+-      strm = alloc_object(t_stream);
+-      strm->sm.tt=strm->sm.sm_mode = (short)smm_string_output;
+-      strm->sm.sm_fp = NULL;
+-      strm->sm.sm_buffer = 0;
+-      STRING_STREAM_STRING(strm) = strng;
+-      strm->sm.sm_object1 = OBJNULL;
+-      strm->sm.sm_int = 0;
+-      strm->sm.sm_flags=0;
+-      vs_reset;
+-      return(strm);
+-}
+-
+-static object
+-get_output_stream_string(object strm) {
++  object strng, strm;
+-      object strng;
++  strng = alloc_string(line_length);
++  strng->st.st_fillp = 0;
++  strng->st.st_self = alloc_relblock(line_length);
++  strm=FFN(fSallocate_basic_stream)(smm_string_output);
++  strm->sm.sm_object0=strng;
++  return(strm);
+-      strng = copy_simple_string(STRING_STREAM_STRING(strm));
+-      STREAM_FILE_COLUMN(strm) = 0;
+-      STRING_STREAM_STRING(strm)->st.st_fillp = 0;
+-      return(strng);
+ }
+ static void
+@@ -740,84 +569,75 @@ cannot_read(object);
+ static void
+ closed_stream(object);
+-\fint
++
++int
+ readc_stream(object strm) {
+-      int c;
++  int c;
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
++ BEGIN:
++  switch (strm->sm.sm_mode) {
+ #ifdef HAVE_NSOCKET
+-      case smm_socket:
+-        return (getCharGclSocket(strm,Ct));
++  case smm_socket:
++    return (getCharGclSocket(strm,Ct));
+ #endif
+-      case smm_input:
+-      case smm_io:
++  case smm_input:
++  case smm_io:
+-              if (strm->sm.sm_fp == NULL)
+-                      closed_stream(strm);
+-              c = kclgetc(strm->sm.sm_fp);
+-/*            if (c == EOF) { */
+-/*              if (xkclfeof(c,strm->sm.sm_fp)) */
+-/*                    end_of_stream(strm); */
+-/*                else c = kclgetc(strm->sm.sm_fp); */
+-/*                if (c == EOF) end_of_stream(strm); */
+-/*            } */
+-              
+-/*            c &= 0377; */
+-              /* strm->sm.sm_int0++; */
+-              return(c==EOF ? c : (c&0377));
++    if (strm->sm.sm_fp == NULL)
++      closed_stream(strm);
++    c = kclgetc(strm->sm.sm_fp);
++    return(c==EOF ? c : (c&0377));
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
++  case smm_file_synonym:
++  case smm_synonym:
++    strm = symbol_value(strm->sm.sm_object0);
++    if (type_of(strm) != t_stream)
++      FEwrong_type_argument(sLstream, strm);
++    goto BEGIN;
+-      case smm_concatenated:
++  case smm_concatenated:
+       CONCATENATED:
+-              if (endp(strm->sm.sm_object0)) {
+-                      end_of_stream(strm);
+-              }
+-              if (stream_at_end(strm->sm.sm_object0->c.c_car)) {
+-                      strm->sm.sm_object0
+-                      = strm->sm.sm_object0->c.c_cdr;
+-                      goto CONCATENATED;
+-              }
+-              c = readc_stream(strm->sm.sm_object0->c.c_car);
+-              return(c);
++    if (endp(strm->sm.sm_object0)) {
++      end_of_stream(strm);
++    }
++    if (stream_at_end(strm->sm.sm_object0->c.c_car)) {
++      strm->sm.sm_object0
++      = strm->sm.sm_object0->c.c_cdr;
++      goto CONCATENATED;
++    }
++    c = readc_stream(strm->sm.sm_object0->c.c_car);
++    return(c);
+-      case smm_two_way:
++  case smm_two_way:
+ #ifdef UNIX
+-              if (strm == terminal_io)                        
+-                      flush_stream(STREAM_OUTPUT_STREAM(terminal_io));
++    if (strm == terminal_io)
++      flush_stream(STREAM_OUTPUT_STREAM(terminal_io));
+ #endif
+-              /* strm->sm.sm_int1 = 0; */
+-              strm = STREAM_INPUT_STREAM(strm);
+-              goto BEGIN;
++    strm = STREAM_INPUT_STREAM(strm);
++    goto BEGIN;
+-      case smm_echo:
+-              c = readc_stream(STREAM_INPUT_STREAM(strm));
+-              if (ECHO_STREAM_N_UNREAD(strm) == 0)
+-                      writec_stream(c, STREAM_OUTPUT_STREAM(strm));
+-              else
+-                      --(ECHO_STREAM_N_UNREAD(strm));
+-              return(c);
++  case smm_echo:
++    c = readc_stream(STREAM_INPUT_STREAM(strm));
++    if (ECHO_STREAM_N_UNREAD(strm) == 0)
++      writec_stream(c, STREAM_OUTPUT_STREAM(strm));
++    else
++      --(ECHO_STREAM_N_UNREAD(strm));
++    return(c);
+-      case smm_string_input:
+-              if (STRING_INPUT_STREAM_NEXT(strm)>= STRING_INPUT_STREAM_END(strm))
+-                      end_of_stream(strm);
+-              return(STRING_STREAM_STRING(strm)->st.st_self
+-                     [STRING_INPUT_STREAM_NEXT(strm)++]);
++  case smm_string_input:
++    if (STRING_INPUT_STREAM_NEXT(strm)>= STRING_INPUT_STREAM_END(strm))
++      end_of_stream(strm);
++    return(STRING_STREAM_STRING(strm)->st.st_self
++         [STRING_INPUT_STREAM_NEXT(strm)++]);
+-      case smm_output:
+-      case smm_probe:
+-      case smm_broadcast:
+-      case smm_string_output:
+-              cannot_read(strm);
++  case smm_output:
++  case smm_probe:
++  case smm_broadcast:
++  case smm_string_output:
++    cannot_read(strm);
+ #ifdef USER_DEFINED_STREAMS
+-      case smm_user_defined:
++  case smm_user_defined:
+ #define STM_DATA_STRUCT 0
+ #define STM_READ_CHAR 1
+ #define STM_WRITE_CHAR 2
+@@ -827,27 +647,28 @@ BEGIN:
+ #define STM_CLOSE 5
+ #define STM_TYPE 6
+ #define STM_NAME 8
+-{object val;
+-              object *old_vs_base = vs_base;
+-              object *old_vs_top = vs_top;
+-              vs_base = vs_top;
+-              vs_push(strm);
+-              super_funcall(strm->sm.sm_object1->str.str_self[STM_READ_CHAR]);
+-              val = vs_base[0];
+-              vs_base = old_vs_base;
+-              vs_top = old_vs_top;
+-              if (type_of(val) == t_fixnum)
+-                return (fix(val));
+-              if (type_of(val) == t_character)
+-                return (char_code(val));
+-            }
++    {
++      object val;
++      object *old_vs_base = vs_base;
++      object *old_vs_top = vs_top;
++      vs_base = vs_top;
++      vs_push(strm);
++      super_funcall(strm->sm.sm_object1->str.str_self[STM_READ_CHAR]);
++      val = vs_base[0];
++      vs_base = old_vs_base;
++      vs_top = old_vs_top;
++      if (type_of(val) == t_fixnum)
++      return (fix(val));
++      if (type_of(val) == t_character)
++      return (char_code(val));
++    }
+ #endif
+-      default:        
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-              return(0);
+-      }
++  default:
++    FEerror("Illegal stream mode for ~S.",1,strm);
++    return(0);
++  }
+ }
+ int
+@@ -855,81 +676,82 @@ rl_ungetc_em(int, FILE *);
+ void
+ unreadc_stream(int c, object strm) {
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_socket:
++
++ BEGIN:
++  switch (strm->sm.sm_mode) {
++  case smm_socket:
+ #ifdef HAVE_NSOCKET
+-        ungetCharGclSocket(c,strm);
+-        return;
++    ungetCharGclSocket(c,strm);
++    return;
+ #endif
+-      case smm_input:
+-      case smm_io:
++  case smm_input:
++  case smm_io:
+-              if (strm->sm.sm_fp == NULL)
+-                      closed_stream(strm);
+-              kclungetc(c, strm->sm.sm_fp);
+-              /* --strm->sm.sm_int0; */  /* use ftell now for position */
+-              break;
++    if (strm->sm.sm_fp == NULL)
++      closed_stream(strm);
++    kclungetc(c, strm->sm.sm_fp);
++    break;
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
++  case smm_file_synonym:
++  case smm_synonym:
++    strm = symbol_value(strm->sm.sm_object0);
++    if (type_of(strm) != t_stream)
++      FEwrong_type_argument(sLstream, strm);
++    goto BEGIN;
+-      case smm_concatenated:
+-              if (endp(strm->sm.sm_object0))
+-                      goto UNREAD_ERROR;
+-              strm = strm->sm.sm_object0->c.c_car;
+-              goto BEGIN;
++  case smm_concatenated:
++    if (endp(strm->sm.sm_object0))
++      goto UNREAD_ERROR;
++    strm = strm->sm.sm_object0->c.c_car;
++    goto BEGIN;
+-      case smm_two_way:
+-              strm = STREAM_INPUT_STREAM(strm);
+-              goto BEGIN;
++  case smm_two_way:
++    strm = STREAM_INPUT_STREAM(strm);
++    goto BEGIN;
+-      case smm_echo:
+-              unreadc_stream(c, STREAM_INPUT_STREAM(strm));
+-              ECHO_STREAM_N_UNREAD(strm)++;
+-              break;
++  case smm_echo:
++    unreadc_stream(c, STREAM_INPUT_STREAM(strm));
++    ECHO_STREAM_N_UNREAD(strm)++;
++    break;
+-      case smm_string_input:
+-              if (STRING_INPUT_STREAM_NEXT(strm)<= 0)
+-                      goto UNREAD_ERROR;
+-              --STRING_INPUT_STREAM_NEXT(strm);
+-              break;
++  case smm_string_input:
++    if (STRING_INPUT_STREAM_NEXT(strm)<= 0)
++      goto UNREAD_ERROR;
++    --STRING_INPUT_STREAM_NEXT(strm);
++    break;
+-      case smm_output:
+-      case smm_probe:
+-      case smm_broadcast:
+-      case smm_string_output:
+-              goto UNREAD_ERROR;
++  case smm_output:
++  case smm_probe:
++  case smm_broadcast:
++  case smm_string_output:
++    goto UNREAD_ERROR;
+ #ifdef USER_DEFINED_STREAMS
+-        case smm_user_defined:
+-              {object *old_vs_base = vs_base;
+-               object *old_vs_top = vs_top;
+-               vs_base = vs_top;
+-               vs_push(strm);
+-               /* if there is a file pointer and no define unget function,
+-                  * then call ungetc */
+-               if ((strm->sm.sm_fp != NULL ) &&
+-                   strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR] == Cnil)
+-                 kclungetc(c, strm->sm.sm_fp);
+-               else
+-                 super_funcall(strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR]);
+-               vs_top = old_vs_top;
+-               vs_base = old_vs_base;
+-             }
+-              break;
++  case smm_user_defined:
++    {
++      object *old_vs_base = vs_base;
++      object *old_vs_top = vs_top;
++      vs_base = vs_top;
++      vs_push(strm);
++      /* if there is a file pointer and no define unget function,
++       * then call ungetc */
++      if ((strm->sm.sm_fp != NULL ) &&
++        strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR] == Cnil)
++      kclungetc(c, strm->sm.sm_fp);
++      else
++      super_funcall(strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR]);
++      vs_top = old_vs_top;
++      vs_base = old_vs_base;
++    }
++    break;
+ #endif
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-      }
+-      return;
++  default:
++    FEerror("Illegal stream mode for ~S.",1,strm);
++  }
++  return;
+-UNREAD_ERROR:
+-      FEerror("Cannot unread the stream ~S.", 1, strm);
++ UNREAD_ERROR:
++  FEerror("Cannot unread the stream ~S.", 1, strm);
+ }
+ static void
+@@ -939,36 +761,6 @@ rl_putc_em(int, FILE *);
+ static void
+ cannot_write(object);
+-object
+-output_stream(object strm) {
+-
+-  switch (strm->sm.sm_mode) {
+-  case smm_output:
+-  case smm_io:
+-  case smm_socket:
+-  case smm_string_output:
+-  case smm_broadcast:
+-#ifdef USER_DEFINED_STREAMS
+-  case smm_user_defined:
+-#endif
+-    return strm;
+-
+-  case smm_file_synonym:
+-  case smm_synonym:
+-    return output_stream(symbol_value(strm->sm.sm_object0));
+-
+-  case smm_two_way:
+-  case smm_echo:
+-    return output_stream(STREAM_OUTPUT_STREAM(strm));
+-
+-  default:
+-    cannot_write(strm);
+-    return Cnil;
+-
+-  }
+-
+-}
+-
+ static void
+ adjust_stream_column(int c,object strm) {
+@@ -1064,182 +856,171 @@ writec_stream_fun(object strm) {
+ int
+ writec_stream(int c, object strm) {
+-      object x;
+-      char *p;
++
++  object x;
++  char *p;
+ BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_output:
+-      case smm_io:
+-      case smm_socket:  
+-              /* strm->sm.sm_int0++; */
+-              if (c == '\n')
+-                      STREAM_FILE_COLUMN(strm) = 0;
+-              else if (c == '\t')
+-                      STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8;
+-              else
+-                      STREAM_FILE_COLUMN(strm)++;
+-              if (strm->sm.sm_fp == NULL)
+-                {
++  switch (strm->sm.sm_mode) {
++  case smm_output:
++  case smm_io:
++  case smm_socket:
++    if (c == '\n')
++      STREAM_FILE_COLUMN(strm) = 0;
++    else if (c == '\t')
++      STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8;
++    else
++      STREAM_FILE_COLUMN(strm)++;
++    if (strm->sm.sm_fp == NULL) {
+ #ifdef HAVE_NSOCKET
+-                  if (strm->sm.sm_mode == smm_socket && strm->sm.sm_fd>=0)
+-                    putCharGclSocket(strm,c);
+-                  else
++      if (strm->sm.sm_mode == smm_socket && strm->sm.sm_fd>=0)
++      putCharGclSocket(strm,c);
++      else
+ #endif
+-                    if (!GET_STREAM_FLAG(strm,gcl_sm_had_error))
+-                      closed_stream(strm);
+-                } else {
+-                      
+-                  kclputc(c, strm->sm.sm_fp);
+-                }
++      if (!GET_STREAM_FLAG(strm,gcl_sm_had_error))
++        closed_stream(strm);
++    } else
++      kclputc(c, strm->sm.sm_fp);
+-              break;
++    break;
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
++  case smm_file_synonym:
++  case smm_synonym:
++    strm = symbol_value(strm->sm.sm_object0);
++    if (type_of(strm) != t_stream)
++      FEwrong_type_argument(sLstream, strm);
++    goto BEGIN;
+-      case smm_broadcast:
+-              for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr)
+-                      writec_stream(c, x->c.c_car);
+-              break;
++  case smm_broadcast:
++    for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr)
++      writec_stream(c, x->c.c_car);
++    break;
+-      case smm_two_way:
+-              /*  this should be on the actual streams 
+-                strm->sm.sm_int0++;
+-              if (c == '\n')
+-                      strm->sm.sm_int1 = 0;
+-              else if (c == '\t')
+-                      strm->sm.sm_int1 = (strm->sm.sm_int1&~07) + 8;
+-              else
+-                      strm->sm.sm_int1++;
+-               */
+-              strm = STREAM_OUTPUT_STREAM(strm);
+-              goto BEGIN;
++  case smm_two_way:
++    strm = STREAM_OUTPUT_STREAM(strm);
++    goto BEGIN;
+-      case smm_echo:
+-              strm = STREAM_OUTPUT_STREAM(strm);
+-              goto BEGIN;
++  case smm_echo:
++    strm = STREAM_OUTPUT_STREAM(strm);
++    goto BEGIN;
+-      case smm_string_output:
+-              /* strm->sm.sm_int0++; */
+-              if (c == '\n')
+-                      STREAM_FILE_COLUMN(strm) = 0;
+-              else if (c == '\t')
+-                      STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8;
+-              else
+-                      STREAM_FILE_COLUMN(strm)++;
+-              x = STRING_STREAM_STRING(strm);
+-              if (x->st.st_fillp >= x->st.st_dim) {
++  case smm_string_output:
++    if (c == '\n')
++      STREAM_FILE_COLUMN(strm) = 0;
++    else if (c == '\t')
++      STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8;
++    else
++      STREAM_FILE_COLUMN(strm)++;
++    x = STRING_STREAM_STRING(strm);
++    if (x->st.st_fillp >= x->st.st_dim) {
+-                ufixnum j=x->st.st_dim * 2 + 16;
++      ufixnum j=x->st.st_dim * 2 + 16;
+-                if (!x->st.st_adjustable)
+-                  FEerror("The string ~S is not adjustable.",1, x);
++      if (!x->st.st_adjustable)
++      FEerror("The string ~S is not adjustable.",1, x);
+-                p = (inheap((long)x->st.st_self) ? alloc_contblock : alloc_relblock)(j);
+-                memcpy(p,x->st.st_self,x->st.st_dim);
+-                x->st.st_dim=j;
+-                x->st.st_self=p;
++      p = (inheap((long)x->st.st_self) ? alloc_contblock : alloc_relblock)(j);
++      memcpy(p,x->st.st_self,x->st.st_dim);
++      x->st.st_dim=j;
++      x->st.st_self=p;
+-                adjust_displaced(x);
++      adjust_displaced(x);
+-              }
+-              x->st.st_self[x->st.st_fillp++] = c;
+-              break;
++    }
++    x->st.st_self[x->st.st_fillp++] = c;
++    break;
+-      case smm_input:
+-      case smm_probe:
+-      case smm_concatenated:
+-      case smm_string_input:
+-              cannot_write(strm);
++  case smm_input:
++  case smm_probe:
++  case smm_concatenated:
++  case smm_string_input:
++    cannot_write(strm);
+ #ifdef USER_DEFINED_STREAMS
+-      case smm_user_defined:
+-              {object *old_vs_base = vs_base;
+-               object *old_vs_top = vs_top;
+-               vs_base = vs_top;
+-               vs_push(strm);
+-               vs_push(code_char(c));
+-               super_funcall(strm->sm.sm_object1->str.str_self[2]);
+-               vs_base = old_vs_base;
+-               vs_top = old_vs_top;
+-               break;
+-             }
++  case smm_user_defined:
++    {
++      object *old_vs_base = vs_base;
++      object *old_vs_top = vs_top;
++      vs_base = vs_top;
++      vs_push(strm);
++      vs_push(code_char(c));
++      super_funcall(strm->sm.sm_object1->str.str_self[2]);
++      vs_base = old_vs_base;
++      vs_top = old_vs_top;
++      break;
++    }
+ #endif
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-      }
+-      return(c);
++  default:
++    FEerror("Illegal stream mode for ~S.",1,strm);
++  }
++  return(c);
+ }
+ void
+ flush_stream(object strm) {
+-      object x;
+-BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_output:
+-      case smm_io:
+-        if (strm->sm.sm_fp == NULL)
+-          closed_stream(strm);
+-        fflush(strm->sm.sm_fp);
+-        break;
+-      case smm_socket:
++  object x;
++
++ BEGIN:
++  switch (strm->sm.sm_mode) {
++  case smm_output:
++  case smm_io:
++    if (strm->sm.sm_fp == NULL)
++      closed_stream(strm);
++    fflush(strm->sm.sm_fp);
++    break;
++  case smm_socket:
+ #ifdef HAVE_NSOCKET
+-              if (SOCKET_STREAM_FD(strm) >0)
+-                gclFlushSocket(strm);
+-              else
++    if (SOCKET_STREAM_FD(strm) >0)
++      gclFlushSocket(strm);
++    else
+ #endif
+-                closed_stream(strm);
+-              break;
+-      case smm_file_synonym:
+-      case smm_synonym:
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
+-
+-      case smm_broadcast:
+-              for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr)
+-                      flush_stream(x->c.c_car);
+-              break;
++      closed_stream(strm);
++    break;
++  case smm_file_synonym:
++  case smm_synonym:
++    strm = symbol_value(strm->sm.sm_object0);
++    if (type_of(strm) != t_stream)
++      FEwrong_type_argument(sLstream, strm);
++    goto BEGIN;
+-      case smm_echo:
+-      case smm_two_way:
+-              strm = STREAM_OUTPUT_STREAM(strm);
+-              goto BEGIN;
++  case smm_broadcast:
++    for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr)
++      flush_stream(x->c.c_car);
++    break;
++  case smm_echo:
++  case smm_two_way:
++    strm = STREAM_OUTPUT_STREAM(strm);
++    goto BEGIN;
+-      case smm_string_output:
+-              break;
++  case smm_string_output:
++    break;
+-      case smm_input:
+-      case smm_probe:
+-      case smm_concatenated:
+-      case smm_string_input:
+-              FEerror("Cannot flush the stream ~S.", 1, strm);
++  case smm_input:
++  case smm_probe:
++  case smm_concatenated:
++  case smm_string_input:
++    FEerror("Cannot flush the stream ~S.", 1, strm);
+ #ifdef USER_DEFINED_STREAMS
+-        case smm_user_defined:
+-              {object *old_vs_base = vs_base;
+-               object *old_vs_top = vs_top;
+-               vs_base = vs_top;
+-               vs_push(strm);
+-               super_funcall(strm->sm.sm_object1->str.str_self[4]);
+-               vs_base = old_vs_base;
+-               vs_top = old_vs_top;
+-              break;
+-             }
++  case smm_user_defined:
++    {
++      object *old_vs_base = vs_base;
++      object *old_vs_top = vs_top;
++      vs_base = vs_top;
++      vs_push(strm);
++      super_funcall(strm->sm.sm_object1->str.str_self[4]);
++      vs_base = old_vs_base;
++      vs_top = old_vs_top;
++      break;
++    }
+ #endif
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-      }
++  default:
++    FEerror("Illegal stream mode for ~S.",1,strm);
++  }
+ }
+@@ -1548,51 +1329,6 @@ BEGIN:
+       }
+ }
+-static int
+-file_length(object strm) {
+-
+- BEGIN:
+-      switch (strm->sm.sm_mode) {
+-      case smm_input:
+-      case smm_output:
+-      case smm_io:
+-      case smm_probe:
+-        if (strm->sm.sm_fp == NULL)
+-          closed_stream(strm);
+-        return(file_len(strm->sm.sm_fp));
+-        
+-      case smm_broadcast:
+-        for (strm=strm->sm.sm_object0;!endp(strm->c.c_cdr);strm=strm->c.c_cdr);
+-        if (strm==Cnil)
+-          return 0;
+-        else {
+-          strm=strm->c.c_car;
+-          goto BEGIN;
+-        }
+-
+-      case smm_file_synonym:
+-      case smm_synonym:
+-
+-              strm = symbol_value(strm->sm.sm_object0);
+-              if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
+-
+-      case smm_string_input:
+-      case smm_string_output:
+-      case smm_concatenated:
+-      case smm_two_way:
+-      case smm_echo:
+-      case smm_socket:
+-              return(-1);
+-
+-      default:
+-              FEerror("Illegal stream mode for ~S.",1,strm);
+-              return(-1);
+-      }
+-      return(-1);
+-}
+-
+ int
+ file_column(object strm) {
+       int i;
+@@ -1686,164 +1422,6 @@ load(const char *s) {
+ }
+-\f
+-
+-static int
+-file_synonym_stream_p(object x) {
+-  switch(type_of(x)) {
+-  case t_stream:
+-    switch(x->sm.sm_mode) {
+-    case smm_input:
+-    case smm_output:
+-    case smm_io:
+-    case smm_probe:
+-    case smm_file_synonym:
+-      return 1;
+-    case smm_synonym:
+-      return file_synonym_stream_p(x->sm.sm_object0->s.s_dbind);
+-    default:
+-      return 0;
+-    }
+-  default:
+-    return 0;
+-  }
+-}
+-
+-LFD(Lmake_synonym_stream)()
+-{
+-      object x;
+-
+-      check_arg(1);
+-      check_type_sym(&vs_base[0]);
+-      x = alloc_object(t_stream);
+-      x->sm.tt=x->sm.sm_mode = file_synonym_stream_p(vs_base[0]->s.s_dbind) ? (short)smm_file_synonym : (short)smm_synonym;
+-      x->sm.sm_fp = NULL;
+-      x->sm.sm_buffer = 0;
+-      x->sm.sm_object0 = vs_base[0];
+-      x->sm.sm_object1 = OBJNULL;
+-      x->sm.sm_int = 0;
+-      x->sm.sm_flags=0;
+-      vs_base[0] = x;
+-}
+-
+-LFD(Lmake_broadcast_stream)() {
+-
+-  object x;
+-  int narg, i;
+-
+-  narg = vs_top - vs_base;
+-  for (i = 0;  i < narg;  i++)
+-    if (type_of(vs_base[i]) != t_stream ||
+-      !output_stream_p(vs_base[i]))
+-      TYPE_ERROR(vs_base[i],
+-               MMcons(sLand,MMcons(sLstream,
+-                                   MMcons(MMcons(sLsatisfies,MMcons(sLoutput_stream_p,Cnil)),Cnil))));
+-      /* cannot_write(vs_base[i]); */
+-
+-  stack_list();
+-
+-  x = alloc_object(t_stream);
+-  x->sm.tt=x->sm.sm_mode = (short)smm_broadcast;
+-  x->sm.sm_fp = NULL;
+-  x->sm.sm_buffer = 0;
+-  x->sm.sm_object0 = vs_base[0];
+-  x->sm.sm_object1 = OBJNULL;
+-  x->sm.sm_int = 0;
+-  x->sm.sm_flags=0;
+-  vs_base[0] = x;
+-
+-}
+-
+-LFD(Lmake_concatenated_stream)() {
+-
+-  object x;
+-  int narg, i;
+-
+-  narg = vs_top - vs_base;
+-  for (i = 0;  i < narg;  i++)
+-    if (type_of(vs_base[i]) != t_stream ||
+-      !input_stream_p(vs_base[i]))
+-      cannot_read(vs_base[i]);
+-
+-  stack_list();
+-
+-  x = alloc_object(t_stream);
+-  x->sm.tt=x->sm.sm_mode = (short)smm_concatenated;
+-  x->sm.sm_fp = NULL;
+-  x->sm.sm_buffer = 0;
+-  x->sm.sm_object0 = vs_base[0];
+-  x->sm.sm_object1 = OBJNULL;
+-  x->sm.sm_int = 0;
+-  x->sm.sm_flags=0;
+-  vs_base[0] = x;
+-
+-}
+-
+-DEFUN("MAKE-TWO-WAY-STREAM", object, fLmake_two_way_stream,LISP,2,2,NONE,OO,OO,OO,OO,(object x,object y),"") {
+-
+-  if (type_of(x) != t_stream || !input_stream_p(x)) TYPE_ERROR(x,sLinput_stream);
+-  if (type_of(y) != t_stream || !output_stream_p(y)) TYPE_ERROR(y,sLoutput_stream);
+-  RETURN1(make_two_way_stream(x,y));
+-  
+-}
+-
+-LFD(Lmake_echo_stream)()
+-{
+-      check_arg(2);
+-
+-      if (type_of(vs_base[0]) != t_stream ||
+-          !input_stream_p(vs_base[0]))
+-        TYPE_ERROR(vs_base[0],sLinput_stream);
+-      if (type_of(vs_base[1]) != t_stream ||
+-          !output_stream_p(vs_base[1]))
+-        TYPE_ERROR(vs_base[1],sLoutput_stream);
+-      vs_base[0] = make_echo_stream(vs_base[0], vs_base[1]);
+-      vs_popp;
+-}
+-
+-DEFUN("MAKE-STRING-OUTPUT-STREAM-INT",object,fLmake_string_output_stream_int,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
+-
+-  RETURN1(make_string_output_stream(64));
+-
+-}
+-
+-
+-DEFUN("GET-OUTPUT-STREAM-STRING",object,fLget_output_stream_string,LISP,
+-         1,1,NONE,OO,OO,OO,OO,(object stream),"") {
+-
+-  if (type_of(stream) != t_stream ||
+-      (enum smmode)stream->sm.sm_mode != smm_string_output)
+-    FEerror("~S is not a string-output stream.", 1, stream);
+-  stream = get_output_stream_string(stream);
+-  RETURN1(stream);
+-
+-}
+-
+-/* LFD(Lget_output_stream_string)() */
+-/* { */
+-/*    check_arg(1); */
+-
+-/*    if (type_of(vs_base[0]) != t_stream || */
+-/*        (enum smmode)vs_base[0]->sm.sm_mode != smm_string_output) */
+-/*            FEerror("~S is not a string-output stream.", 1, vs_base[0]); */
+-/*    vs_base[0] = get_output_stream_string(vs_base[0]); */
+-/* } */
+-
+-/*
+-      (SI:OUTPUT-STREAM-STRING string-output-stream)
+-
+-              extracts the string associated with the given
+-              string-output-stream.
+-*/
+-LFD(siLoutput_stream_string)()
+-{
+-      check_arg(1);
+-      if (type_of(vs_base[0]) != t_stream ||
+-          (enum smmode)vs_base[0]->sm.sm_mode != smm_string_output)
+-              FEerror("~S is not a string-output stream.", 1, vs_base[0]);
+-      vs_base[0] = vs_base[0]->sm.sm_object0;
+-}
+-
+ object
+ file_stream(object x) {
+   if (type_of(x)==t_stream)
+@@ -1861,70 +1439,17 @@ file_stream(object x) {
+   return Cnil;
+ }
+-DEFUN("FILE-STREAM-P",object,fSfile_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(file_stream(x)!=Cnil ? Ct : Cnil);
+-}
+-
+-DEFUN("SYNONYM-STREAM-P",object,fSsynonym_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_synonym ? Ct : Cnil);
+-}
+-
+-DEFUN("BROADCAST-STREAM-P",object,fSbroadcast_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_broadcast ? Ct : Cnil);
+-}
+-
+-DEFUN("ECHO-STREAM-P",object,fSecho_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_echo ? Ct : Cnil);
+-}
+-
+-DEFUN("TWO-WAY-STREAM-P",object,fStwo_way_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_two_way ? Ct : Cnil);
+-}
+-
+-DEFUN("CONCATENATED-STREAM-P",object,fSconcatenated_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
+-  RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_concatenated ? Ct : Cnil);
+-}
+-
+-
+-
+-LFD(Lstreamp)()
+-{
+-      check_arg(1);
+-
+-      if (type_of(vs_base[0]) == t_stream)
+-              vs_base[0] = Ct;
+-      else
+-              vs_base[0] = Cnil;
+-}
+-
+-LFD(Linput_stream_p)()
+-{
+-      check_arg(1);
+-
+-      check_type_stream(&vs_base[0]);
+-      if (input_stream_p(vs_base[0]))
+-              vs_base[0] = Ct;
+-      else
+-              vs_base[0] = Cnil;
+-}
+-
+-LFD(Loutput_stream_p)()
+-{
+-      check_arg(1);
+-
+-      check_type_stream(&vs_base[0]);
+-      if (output_stream_p(vs_base[0]))
+-              vs_base[0] = Ct;
+-      else
+-              vs_base[0] = Cnil;
+-}
++/*
++      Close_stream(strm) closes stream strm.
++      The abort_flag is not used now.
++*/
+-@(defun close (strm &key abort)
+-@
+-      check_type_stream(&strm);
+-      close_stream(strm);
+-      @(return Ct)
+-@)
++/* @(defun close (strm &key abort) */
++/* @ */
++/*    check_type_stream(&strm); */
++/*    close_stream(strm); */
++/*    @(return Ct) */
++/* @) */
+ DEFUN("OPEN-INT",object,fSopen_int,SI,8,8,NONE,OO,OO,OO,OO,
+         (object fn,object direction,object element_type,object if_exists,
+@@ -1977,78 +1502,6 @@ DEFUN("OPEN-INT",object,fSopen_int,SI,8,
+   RETURN1(strm);
+ }
+-
+-static fixnum /*FIXME, this duplicates code in gcl_iolib.lsp somwhat */
+-chars_per_write(object s) {/*s already a file-stream*/
+-
+-  fixnum i;
+-  
+-  s=s->sm.sm_object0;
+-  if (consp(s)) {
+-    s=s->c.c_cdr->c.c_car;
+-    i=fix(s);
+-    return ((i/CHAR_SIZE) + (i%CHAR_SIZE ? 1 : 0));
+-  } else
+-    return 1;
+-
+-}
+-
+-@(defun file_position (file_stream &o position)
+-  fixnum i=0;
+-@
+-      check_type_stream(&file_stream);
+-      if (position == Cnil) {
+-              i = file_position(file_stream);
+-              if (i < 0)
+-                      @(return Cnil)
+-              i/=chars_per_write(file_stream);
+-              @(return `make_fixnum(i)`)
+-      } else {
+-              if (position == sKstart)
+-                      i = 0;
+-              else if (position == sKend)
+-                      i = file_length(file_stream);
+-              else if (type_of(position) != t_fixnum ||
+-                  (i = fix((position))) < 0)
+-                      FEerror("~S is an illegal file position~%\
+-for the file-stream ~S.",
+-                              2, position, file_stream);
+-              if (file_position_set(file_stream, i) < 0)
+-                      @(return Cnil)
+-              @(return Ct)
+-      }       
+-@)
+-
+-LFD(Lfile_length)()
+-{
+-      int i;
+-
+-      check_arg(1);
+-      check_type_stream(&vs_base[0]);
+-      i = file_length(vs_base[0]);
+-      if (i < 0)
+-              FEwrong_type_argument(sLfile_stream,vs_base[0]);
+-      else {
+-        i/=chars_per_write(vs_base[0]);
+-        vs_base[0] = make_fixnum(i);
+-      }
+-}
+-
+-LFD(siLfile_column)()
+-{
+-      int i;
+-
+-      check_arg(1);
+-      check_type_stream(&vs_base[0]);
+-      i = file_column(vs_base[0]);
+-      if (i < 0)
+-              FEwrong_type_argument(sLfile_stream,vs_base[0]);
+-      else
+-              vs_base[0] = make_fixnum(i);
+-}
+-
+-
+-
+ DEFVAR("*COLLECT-BINARY-MODULES*",sSAcollect_binary_modulesA,SI,sLnil,"");
+ DEFVAR("*BINARY-MODULES*",sSAbinary_modulesA,SI,Cnil,"");
+ DEFVAR("*DISABLE-RECOMPILE*",sSAdisable_recompile,SI,Ct,"");
+@@ -2118,86 +1571,48 @@ DEFUN("LOAD-FASL",object,fSload_fasl,SI,
+ }
+-static void
+-FFN(siLget_string_input_stream_index)()
+-{
+-      check_arg(1);
+-      check_type_stream(&vs_base[0]);
+-      if ((enum smmode)vs_base[0]->sm.sm_mode != smm_string_input)
+-              FEerror("~S is not a string-input stream.", 1, vs_base[0]);
+-      vs_base[0] = make_fixnum(STRING_INPUT_STREAM_NEXT(vs_base[0]));
+-}
+-
+-LFD(siLmake_string_output_stream_from_string)()
+-{
+-      object strng, strm;
+-
+-      check_arg(1);
+-      strng = vs_base[0];
+-      if (!stringp(strng) || !strng->st.st_hasfillp)
+-              FEerror("~S is not a string with a fill-pointer.", 1, strng);
+-      strm = alloc_object(t_stream);
+-      strm->sm.tt=strm->sm.sm_mode = (short)smm_string_output;
+-      strm->sm.sm_fp = NULL;
+-      strm->sm.sm_buffer = 0;
+-      STRING_STREAM_STRING(strm) = strng;
+-      strm->sm.sm_object1 = OBJNULL;
+-      /* strm->sm.sm_int0 = strng->st.st_fillp; */
+-      STREAM_FILE_COLUMN(strm) = 0;/*FIXME*/
+-      strm->sm.sm_flags=0;
+-      vs_base[0] = strm;
+-}
+-
+-LFD(siLcopy_stream)()
+-{
+-      object in, out;
+-
+-      check_arg(2);
+-      check_type_stream(&vs_base[0]);
+-      check_type_stream(&vs_base[1]);
+-      in = vs_base[0];
+-      out = vs_base[1];
+-      while (!stream_at_end(in))
+-              writec_stream(readc_stream(in), out);
+-      flush_stream(out);
+-      vs_base[0] = Ct;
+-      vs_popp;
+-#ifdef AOSVS
++DEFUN("COPY-STREAM",object,fScopy_stream,SI,2,2,NONE,OO,OO,OO,OO,(object in,object out),"") {
++
++  check_type_stream(&in);
++  check_type_stream(&out);
++  while (!stream_at_end(in))
++    writec_stream(readc_stream(in), out);
++  flush_stream(out);
++  RETURN1(Ct);
+-#endif
+ }
+ static void
+ cannot_open(object fn) {
+-      FILE_ERROR(fn,"Cannot open");
++  FILE_ERROR(fn,"Cannot open");
+ }
+ static void
+ cannot_create(object fn) {
+-      FILE_ERROR(fn,"Cannot create");
++  FILE_ERROR(fn,"Cannot create");
+ }
+ static void
+ cannot_read(object strm) {
+-      FEerror("Cannot read the stream ~S.", 1, strm);
++  FEerror("Cannot read the stream ~S.", 1, strm);
+ }
+ static void
+ cannot_write(object strm) {
+-      FEerror("Cannot write to the stream ~S.", 1, strm);
++  FEerror("Cannot write to the stream ~S.", 1, strm);
+ }
+ #ifdef USER_DEFINED_STREAMS
+ /* more support for user defined streams */
+ static void
+-FFN(siLuser_stream_state)()
+-{     
++FFN(siLuser_stream_state)() {
++
+   check_arg(1);
+   if(vs_base[0]->sm.sm_object1)
+-      vs_base[0] = vs_base[0]->sm.sm_object1->str.str_self[0]; 
++    vs_base[0] = vs_base[0]->sm.sm_object1->str.str_self[0];
+   else
+-      FEerror("sLtream data NULL ~S", 1, vs_base[0]);
++    FEerror("sLtream data NULL ~S", 1, vs_base[0]);
+ }
+ #endif
+@@ -2206,19 +1621,12 @@ closed_stream(object strm) {
+   if (!GET_STREAM_FLAG(strm,gcl_sm_had_error))
+     {
+-        SET_STREAM_FLAG(strm,gcl_sm_had_error,1);
+-      FEerror("The stream ~S is already closed.", 1, strm);
++      SET_STREAM_FLAG(strm,gcl_sm_had_error,1);
++      FEerror("The stream ~S is already closed.", 1, strm);
+     }
+ }
+-
+-
+-/* returns a stream with which one can safely do fwrite to the x->sm.sm_fp
+-   or nil.
+-   */
+-
+-
+ /* coerce stream to one so that x->sm.sm_fp is suitable for fread and fwrite,
+    Return nil if this is not possible.
+    */
+@@ -2227,60 +1635,60 @@ object
+ coerce_stream(object strm,int out) {
+  BEGIN:
+- if (type_of(strm) != t_stream)
+-   FEwrong_type_argument(sLstream, strm);
+- switch (strm->sm.sm_mode){
+- case smm_file_synonym:
+- case smm_synonym:
+-  strm = symbol_value(strm->sm.sm_object0);
+   if (type_of(strm) != t_stream)
+-                      FEwrong_type_argument(sLstream, strm);
+-              goto BEGIN;
++    FEwrong_type_argument(sLstream, strm);
++  switch (strm->sm.sm_mode){
++  case smm_file_synonym:
++  case smm_synonym:
++    strm = symbol_value(strm->sm.sm_object0);
++    if (type_of(strm) != t_stream)
++      FEwrong_type_argument(sLstream, strm);
++    goto BEGIN;
+- case smm_two_way:
+- case smm_echo:
+-  if (out)strm = STREAM_OUTPUT_STREAM(strm);
++  case smm_two_way:
++  case smm_echo:
++    if (out)strm = STREAM_OUTPUT_STREAM(strm);
+     else strm = STREAM_INPUT_STREAM(strm);
+-  goto BEGIN;
+- case smm_output:
+-  if (!out) cannot_read(strm);
+-  break;
+- case smm_string_output:
+-   if (!out) cannot_read(strm);
+-   return (strm);
+-  break;
+- case smm_input: 
++    goto BEGIN;
++  case smm_output:
++    if (!out) cannot_read(strm);
++    break;
++  case smm_string_output:
++    if (!out) cannot_read(strm);
++    return (strm);
++    break;
++  case smm_input:
+     if (out) cannot_write(strm);
+-  break;
+- case smm_string_input:
++    break;
++  case smm_string_input:
+     if (out) cannot_write(strm);
+     return (strm);
+-  break;
+- case smm_io:
+-/*  case smm_socket: */
+- break;
+- 
+- default:
+-  strm=Cnil;
+-  }
+- if (strm!=Cnil
+-     && (strm->sm.sm_fp == NULL))
+-   closed_stream(strm);
+- return(strm);
++    break;
++  case smm_io:
++    /*  case smm_socket: */
++    break;
++
++  default:
++    strm=Cnil;
++  }
++  if (strm!=Cnil
++      && (strm->sm.sm_fp == NULL))
++    closed_stream(strm);
++  return(strm);
++
+ }
+-static void
+-FFN(siLfp_output_stream)()
+-{check_arg(1);
+- vs_base[0]=coerce_stream(vs_base[0],1);
++DEFUN("FP-INPUT-STREAM",object,fSfp_input_stream,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
++
++  RETURN1(coerce_stream(x,0));
++
+ }
+-static void
+-FFN(siLfp_input_stream)()
+-{check_arg(1);
+- vs_base[0]=coerce_stream(vs_base[0],0);
++DEFUN("FP-OUTPUT-STREAM",object,fSfp_output_stream,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
++
++  RETURN1(coerce_stream(x,1));
++
+ }
+- 
+ DEFUN("FWRITE",object,fSfwrite,SI,4,4,NONE,OO,OO,OO,OO,
+         (object vector,object start,object count,object stream),"") {
+@@ -2328,7 +1736,7 @@ DEFUN("FREAD",object,fSfread,SI,4,4,NONE
+   Results:
+   Side Effects:  The buffer may be filled, and the fill pointer
+   of the buffer may be changed.
+- */
++*/
+ static void
+ putCharGclSocket(object strm,int ch) {
+@@ -2349,70 +1757,57 @@ putCharGclSocket(object strm,int ch) {
+ static void
+ gclFlushSocket(object strm) {
+-    int fd = SOCKET_STREAM_FD(strm);
+-    object bufp = SOCKET_STREAM_BUFFER(strm);
+-    int i=0;
+-    int err;
+-    int wrote;
+-    if (!GET_STREAM_FLAG(strm,gcl_sm_output)
+-      ||   GET_STREAM_FLAG(strm,gcl_sm_had_error))
+-       return;
++  int fd = SOCKET_STREAM_FD(strm);
++  object bufp = SOCKET_STREAM_BUFFER(strm);
++  int i=0;
++  int err;
++  int wrote;
++  if (!GET_STREAM_FLAG(strm,gcl_sm_output)
++      ||   GET_STREAM_FLAG(strm,gcl_sm_had_error))
++    return;
+ #define AMT_TO_WRITE 500
+-    while(i< bufp->ust.ust_fillp) {
+-      wrote =TcpOutputProc ( fd, 
+-                           &(bufp->st.st_self[i]),
+-                           bufp->ust.ust_fillp-i > AMT_TO_WRITE ? AMT_TO_WRITE : bufp->ust.ust_fillp-i,
+-                           &err
++  while(i< bufp->ust.ust_fillp) {
++    wrote =TcpOutputProc ( fd,
++                         &(bufp->st.st_self[i]),
++                         bufp->ust.ust_fillp-i > AMT_TO_WRITE ? AMT_TO_WRITE : bufp->ust.ust_fillp-i,
++                         &err
+ #ifdef __MINGW32__
+-                              , TRUE /* Wild guess as to whether it should block or not */
++                         , TRUE /* Wild guess as to whether it should block or not */
+ #endif
+-);
+-      if (wrote < 0) {
+-      SET_STREAM_FLAG(strm,gcl_sm_had_error,1);
+-      close_stream(strm);
+-      FEerror("error writing to socket: errno= ~a",1,make_fixnum(err));
+-      
+-      }
+-      i+= wrote;
++                         );
++    if (wrote < 0) {
++      SET_STREAM_FLAG(strm,gcl_sm_had_error,1);
++      close_stream(strm);
++      FEerror("error writing to socket: errno= ~a",1,make_fixnum(err));
++
+     }
+-    bufp->ust.ust_fillp=0;
++    i+= wrote;
++  }
++
++  bufp->ust.ust_fillp=0;
++
+ }
+-static
+-object
++static object
+ make_socket_stream(int fd,enum gcl_sm_flags mode,object server,object host,object port,object async) {
+   object x;
+-  if (fd < 0 )
+-   {
+-     FEerror("Could not connect",0);
++  if (fd<0) {
++    FEerror("Could not connect",0);
+    }
+-  x = alloc_object(t_stream);
+-  x->sm.tt=x->sm.sm_mode = smm_socket;
+-  x->sm.sm_buffer = 0;
++  x=FFN(fSallocate_basic_stream)(smm_socket);
+   x->sm.sm_object0 = list(3,server,host,port);
+-  x->sm.sm_object1 = 0;
+-  x->sm.sm_int = 0;
+-  x->sm.sm_flags=0;
+   SOCKET_STREAM_FD(x)= fd;
+   SET_STREAM_FLAG(x,mode,1);
+   SET_STREAM_FLAG(x,gcl_sm_tcp_async,(async!=Cnil));
+-  /*
+-  if (mode == gcl_sm_output)
+-     { fp=fdopen(fd,(mode==gcl_sm_input ? "r" : "w"));
+-       if (fp==NULL)      FEerror("Could not connect",0);
+-       x->sm.sm_fp = fp;
+-       setup_stream_buffer(x);
+-     } else
+-   */
+-     {
+-         object buffer;
+-         x->sm.sm_fp = NULL;
+-       buffer=alloc_string((BUFSIZ < 4096 ? 4096 : BUFSIZ));
+-       SOCKET_STREAM_BUFFER(x) =buffer;
+-       buffer->ust.ust_self = alloc_contblock(buffer->st.st_dim);
+-       buffer->ust.ust_fillp = 0;
+-     }
++  {
++    object buffer;
++    x->sm.sm_fp = NULL;
++    buffer=alloc_string((BUFSIZ < 4096 ? 4096 : BUFSIZ));
++    SOCKET_STREAM_BUFFER(x) =buffer;
++    buffer->ust.ust_self = alloc_contblock(buffer->st.st_dim);
++    buffer->ust.ust_fillp = 0;
++  }
+   return x;
+ }
+      
+@@ -2462,43 +1857,35 @@ rmc(int e,void *pid) {
+ #endif
+ #endif
+-@(static defun socket (port &key host server async myaddr myport daemon)
+-             /*
+-           HOST is a string then connection is made to that
+-                          ip or domain address.
+-          SERVER  A function to call if this is to be a server 
+-                            
+-            ASYNC  socket returned immideiately.  read or flush
+-                           will block till open if in non blocking mode 
+-            MYADDR  client's ip address. Useful if have several
+-                                    net interfaces
+-            MYPORT  port to use on client side
+-                        */
+-int fd;
+-int isServer = 0;
+-int inPort;
+-char buf1[500];
+-char buf2[500];
+-char *myaddrPtr=buf1,*hostPtr=buf2;
+-object x=Cnil;
+-@
++DEFUN("SOCKET-INT",object,fSsocket_int,SI,7,7,NONE,OO,OO,OO,OO,
++      (object port,object host,object server,object async,object myaddr,
++       object myport,object daemon),"") {
++
++  int fd;
++  int isServer = 0;
++  int inPort;
++  char buf1[500];
++  char buf2[500];
++  char *myaddrPtr=buf1,*hostPtr=buf2;
++  object x=Cnil;
++
+   if (stringp(host)) {
+     hostPtr=lisp_copy_to_null_terminated(host,hostPtr,sizeof(buf1));
+   } else { hostPtr = NULL; }
+   
+-   if (fLfunctionp(server) == Ct) {
+-      isServer=1;
+-   }
+-   
+-   if (myaddr != Cnil) {
+-     myaddrPtr=lisp_copy_to_null_terminated(myaddr,myaddrPtr,sizeof(buf2));
+-   } else   { myaddrPtr = NULL; }
+-   if (isServer == 0 && hostPtr == NULL) {
+-     FEerror("You must supply at least one of :host hostname or :server function",0);
+-   }
+-   Iis_fixnum(port);
+-   inPort = (myport == Cnil ? 0 : fix(Iis_fixnum(myport)));
+-   
++  if (fLfunctionp(server) == Ct) {
++    isServer=1;
++  }
++
++  if (myaddr != Cnil) {
++    myaddrPtr=lisp_copy_to_null_terminated(myaddr,myaddrPtr,sizeof(buf2));
++  } else   { myaddrPtr = NULL; }
++  if (isServer == 0 && hostPtr == NULL) {
++    FEerror("You must supply at least one of :host hostname or :server function",0);
++  }
++  Iis_fixnum(port);
++  inPort = (myport == Cnil ? 0 : fix(Iis_fixnum(myport)));
++
+ #ifdef BSD
+   if (isServer && daemon != Cnil) {
+@@ -2552,7 +1939,7 @@ object x=Cnil;
+       x = make_two_way_stream
+       (make_socket_stream(fd,gcl_sm_input,server,host,port,async),
+        make_socket_stream(fd,gcl_sm_output,server,host,port,async));
+-    
++
+       for (;;) {
+       
+       fd_set fds;
+@@ -2605,10 +1992,10 @@ object x=Cnil;
+        make_socket_stream(fd,gcl_sm_output,server,host,port,async));
+   }
+-    
+-  @(return `x`);
+-   
+-@)
++
++  RETURN1(x);
++
++}
+ DEF_ORDINARY("MYADDR",sKmyaddr,KEYWORD,"");
+ DEF_ORDINARY("MYPORT",sKmyport,KEYWORD,"");
+@@ -2619,26 +2006,19 @@ DEF_ORDINARY("DAEMON",sKdaemon,KEYWORD,"
+ DEF_ORDINARY("PERSISTENT",sKpersistent,KEYWORD,"");
+ DEF_ORDINARY("SOCKET",sSsocket,SI,"");
++DEFUN("ACCEPT",object,fSaccept,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") {
++
++  RETURN1(maccept(x));
+-@(static defun accept (x)
+-@
+-  x=maccept(x);
+-  @(return `x`);
+-@)
++}
+ #endif /* HAVE_NSOCKET */
+ object
+ fresh_synonym_stream_to_terminal_io(void) {
+-  object x = alloc_object(t_stream);
+-  x->sm.tt=x->sm.sm_mode = (short)smm_synonym;
+-  x->sm.sm_fp = NULL;
+-  x->sm.sm_buffer = 0;
++  object x=FFN(fSallocate_basic_stream)(smm_synonym);
+   x->sm.sm_object0 = sLAterminal_ioA;
+-  x->sm.sm_object1 = OBJNULL;
+-  x->sm.sm_int = 0; /* unused */
+-  x->sm.sm_flags=0;
+   return x;
+ }
+@@ -2655,44 +2035,31 @@ DEFVAR("*TRACE-OUTPUT*",sLAtrace_outputA
+ void
+-gcl_init_file(void)
+-{
+-      object standard_input;
+-      object standard_output;
+-      object standard;
+-
+-      standard_input = alloc_object(t_stream);
+-      standard_input->sm.tt=standard_input->sm.sm_mode = (short)smm_input;
+-      standard_input->sm.sm_fp = stdin;
+-      standard_input->sm.sm_buffer = 0;
+-      standard_input->sm.sm_object0 = sLcharacter;
+-      standard_input->sm.sm_object1 = make_simple_string("stdin");
+-      standard_input->sm.sm_int = 0; /* unused */
+-      standard_input->sm.sm_flags = 0;
+-
+-      standard_output = alloc_object(t_stream);
+-      standard_output->sm.tt=standard_output->sm.sm_mode = (short)smm_output;
+-      standard_output->sm.sm_fp = stdout;
+-      standard_output->sm.sm_buffer = 0;
+-      standard_output->sm.sm_object0 = sLcharacter;
+-      standard_output->sm.sm_object1 = make_simple_string("stdout");
+-      standard_output->sm.sm_int = 0; /* unused */
+-      standard_output->sm.sm_flags=0;
+-
+-      standard_error = alloc_object(t_stream);
+-      standard_error->sm.tt=standard_error->sm.sm_mode = (short)smm_output;
+-      standard_error->sm.sm_fp = stderr;
+-      standard_error->sm.sm_buffer = 0;
+-      standard_error->sm.sm_object0 = sLcharacter;
+-      standard_error->sm.sm_object1 = make_simple_string("stderr");
+-      standard_error->sm.sm_int = 0; /* unused */
+-      standard_error->sm.sm_flags=0;
+-      enter_mark_origin(&standard_error);
+-
+-      terminal_io = standard
+-      = make_two_way_stream(standard_input, standard_output);
+-      enter_mark_origin(&terminal_io);
++gcl_init_file(void) {
++  object standard_input;
++  object standard_output;
++  object standard;
++
++  standard_input=FFN(fSallocate_basic_stream)(smm_input);
++  standard_input->sm.sm_fp = stdin;
++  standard_input->sm.sm_object0 = sLcharacter;
++  standard_input->sm.sm_object1 = make_simple_string("stdin");
++
++  standard_output=FFN(fSallocate_basic_stream)(smm_output);
++  standard_output->sm.sm_fp = stdout;
++  standard_output->sm.sm_object0 = sLcharacter;
++  standard_output->sm.sm_object1 = make_simple_string("stdout");
++
++  standard_error=FFN(fSallocate_basic_stream)(smm_output);
++  standard_error->sm.sm_fp = stderr;
++  standard_error->sm.sm_object0 = sLcharacter;
++  standard_error->sm.sm_object1 = make_simple_string("stderr");
++  enter_mark_origin(&standard_error);
++
++  terminal_io = standard
++    = make_two_way_stream(standard_input, standard_output);
++  enter_mark_origin(&terminal_io);
+ }
+@@ -2726,98 +2093,17 @@ DEF_ORDINARY("SET-DEFAULT-PATHNAME",sKse
+ DEF_ORDINARY("SUPERSEDE",sKsupersede,KEYWORD,"");
+ DEF_ORDINARY("VERBOSE",sKverbose,KEYWORD,"");
+-
+-DEFUN("STREAM-OBJECT0",object,fSstream_object0,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") {
+-  
+-  object x;
+-  
+-  if (type_of(strm)!=t_stream)
+-    TYPE_ERROR(strm,sLstream);
+-  x=strm->sm.sm_object0;
+-  x=x==OBJNULL ? Cnil : x;
+-  RETURN1(x);
+-  
+-}
+-
+-DEFUN("STREAM-OBJECT1",object,fSstream_object1,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") { 
+-
+-  object x;
+-
+-  if (type_of(strm)!=t_stream)
+-    TYPE_ERROR(strm,sLstream);
+-  x=strm->sm.sm_object1;
+-  x=x==OBJNULL ? Cnil : x;
+-  RETURN1(x);
+-
+-}
+-
+ void
+-gcl_init_file_function()
+-{
++gcl_init_file_function() {
+-
+-#ifdef UNIX
+-      FASL_string = make_simple_string("o");
+-      make_si_constant("*EOF*",make_fixnum(EOF));
+-#endif
+-#ifdef AOSVS
+-
+-#endif
+-      enter_mark_origin(&FASL_string);
+-#ifdef UNIX
+-      LSP_string = make_simple_string("lsp");
+-#endif
+-#ifdef AOSVS
+-
+-#endif
+-      enter_mark_origin(&LSP_string);
+-      make_si_function("FP-INPUT-STREAM",     siLfp_input_stream);
+-      make_si_function("FP-OUTPUT-STREAM",    siLfp_output_stream);
+-
+-      make_function("MAKE-SYNONYM-STREAM", Lmake_synonym_stream);
+-      make_function("MAKE-BROADCAST-STREAM", Lmake_broadcast_stream);
+-      make_function("MAKE-CONCATENATED-STREAM",
+-                    Lmake_concatenated_stream);
+-/*    make_function("MAKE-TWO-WAY-STREAM", Lmake_two_way_stream); */
+-      make_function("MAKE-ECHO-STREAM", Lmake_echo_stream);
+-/*    make_function("MAKE-STRING-OUTPUT-STREAM", */
+-/*                  Lmake_string_output_stream); */
+-/*    make_function("GET-OUTPUT-STREAM-STRING", */
+-/*                  Lget_output_stream_string); */
+-
+-      make_si_function("OUTPUT-STREAM-STRING", siLoutput_stream_string);
+-/*    make_si_function("FWRITE",Lfwrite); */
+-/*    make_si_function("FREAD",Lfread); */
+-#ifdef HAVE_NSOCKET
+-      make_si_function("SOCKET",Lsocket);
+-      make_si_function("ACCEPT",Laccept);
+-#endif
+-      make_function("STREAMP", Lstreamp);
+-      make_function("INPUT-STREAM-P", Linput_stream_p);
+-      make_function("OUTPUT-STREAM-P", Loutput_stream_p);
+-      make_function("CLOSE", Lclose);
+-
+-/*    make_si_function("OPEN1", Lopen1); */
+-
+-      make_function("FILE-POSITION", Lfile_position);
+-      make_function("FILE-LENGTH", Lfile_length);
+-      make_si_function("FILE-COLUMN", siLfile_column);
+-/*    make_function("READ-SEQUENCE", Lread_sequence); */
+-/*    make_function("WRITE-SEQUENCE", Lwrite_sequence); */
+-
+-      /* make_si_function("LOAD1", Lload1); */
+-
+-      make_si_function("GET-STRING-INPUT-STREAM-INDEX",
+-                       siLget_string_input_stream_index);
+-      make_si_function("MAKE-STRING-OUTPUT-STREAM-FROM-STRING",
+-                       siLmake_string_output_stream_from_string);
+-      make_si_function("COPY-STREAM", siLcopy_stream);
++  make_si_constant("*EOF*",make_fixnum(EOF));
+ #ifdef USER_DEFINED_STREAMS
+-      make_si_function("USER-STREAM-STATE", siLuser_stream_state);
++  make_si_function("USER-STREAM-STATE", siLuser_stream_state);
+ #endif
+ #ifdef USE_READLINE
+-      gcl_init_readline_function();
++  gcl_init_readline_function();
+ #endif
++
+ }
+--- gcl27-2.7.1.orig/o/read.d
++++ gcl27-2.7.1/o/read.d
+@@ -2328,30 +2328,14 @@ DEFUN("SET-READTABLE-CASE",object,fSset_
+             }
+ @)
+-static object
+-string_to_object(object x) {
++DEFUN("STRING-TO-OBJECT-INT",object,fSstring_to_object_int,SI,1,1,NONE,OO,OO,OO,OO,(object in),"") {
+-      object in;
+-      vs_mark;
++  preserving_whitespace_flag = FALSE;
++  detect_eos_flag = FALSE;
++  return(read_object_non_recursive(in));
+-      in = fSmake_string_input_stream_int(x, 0, VLEN(x));
+-      vs_push(in);
+-      preserving_whitespace_flag = FALSE;
+-      detect_eos_flag = FALSE;
+-      x = read_object_non_recursive(in);
+-      vs_reset;
+-      return(x);
+ }
+       
+-LFD(siLstring_to_object)()
+-{
+-      check_arg(1);
+-
+-      check_type_string(&vs_base[0]);
+-      vs_base[0] = string_to_object(vs_base[0]);
+-}
+-
+-
+ static void
+ FFN(siLstandard_readtable)()
+ {
+@@ -2529,21 +2513,7 @@ gcl_init_read()
+ void
+ gcl_init_read_function()
+ {
+-/*    make_function("READ", Lread); */
+-/*    make_function("READ-PRESERVING-WHITESPACE",Lread_preserving_whitespace); */
+-/*    make_function("READ-DELIMITED-LIST", Lread_delimited_list); */
+-/*    make_function("READ-LINE", Lread_line); */
+-/*    make_function("READ-CHAR", Lread_char); */
+-/*    make_function("UNREAD-CHAR", Lunread_char); */
+-/*    make_function("PEEK-CHAR", Lpeek_char); */
+-/*    make_function("LISTEN", Llisten); */
+-/*    make_function("READ-CHAR-NO-HANG", Lread_char_no_hang); */
+       make_function("CLEAR-INPUT", Lclear_input);
+-
+-/*    make_function("PARSE-INTEGER", Lparse_integer); */
+-
+-/*    make_function("READ-BYTE", Lread_byte); */
+-
+       make_function("COPY-READTABLE", Lcopy_readtable);
+       make_function("READTABLEP", Lreadtablep);
+       make_function("SET-SYNTAX-FROM-CHAR", Lset_syntax_from_char);
+@@ -2555,9 +2525,8 @@ gcl_init_read_function()
+       make_si_function("SHARP-COMMA-READER-FOR-COMPILER",siLsharp_comma_reader_for_compiler);
+-      make_si_function("STRING-TO-OBJECT",siLstring_to_object);
+-
+       make_si_function("STANDARD-READTABLE",siLstandard_readtable);
++
+ }
+ object sSPinit;
diff --git a/debian/patches/Version_2_7_2pre18 b/debian/patches/Version_2_7_2pre18
new file mode 100644 (file)
index 0000000..a5ac13e
--- /dev/null
@@ -0,0 +1,4473 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 13 2026 12:16:53 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1105309
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -148,15 +148,17 @@ ARCHT_H=h/elf32_armhf_reloc.h h/elf32_ar
+       h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h h/solaris-i386.h
+ BUILT_H=h/new_decl.h o/boot.h h/cmpinclude.h
+-C_SRC=o/typespec.c o/alloc.c o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\
++C_SRC=o/typespec.c o/alloc.c o/gbc.c  o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\
+       o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c o/conditional.c o/block.c o/iteration.c\
+       o/prog.c o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c o/num_comp.c\
+       o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c o/num_rand.c o/earith.c\
+       o/array.c o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c\
+       o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c  o/fat_string.c\
+-      o/run_process.c o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
+-      o/clxsocket.c o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
+-      o/bcmp.c o/bcopy.c o/bzero.c o/user_init.c o/user_match.c o/mapfun.c
++      o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
++      o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
++      o/user_init.c o/user_match.c o/mapfun.c
++#     o/bitop.c o/nfunlink.c o/clxsocket.c
++#     o/bcmp.c o/bcopy.c o/bzero.c
+ D_SRC=o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\
+       o/read.d o/sequence.d o/string.d o/symbol.d
+@@ -255,13 +257,19 @@ unixport/saved_%: | unixport/raw_% unixp
+               ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \
+               echo "(system:save-system \"../$@\")" | \
+               cat ../unixport/init_raw.lsp prof_init.lsp - | \
+-                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
++                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+                               ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
+-              rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
++              rm -f ../unixport/gcl_cmpnopt.lsp
+       rm -rf sb_$*
+ unixport/raw_%: unixport/lib%.a $(FF) $(LF)
+       $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro
++      ! which otool >/dev/null || \
++              ! otool -l $@ |grep -q LC_DYLD_CHAINED_FIXUPS || \
++              ( echo Relinking raw image for mac arm && \
++                $(CC) \
++                     $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
++                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -277,12 +285,13 @@ unixport/lib%.a: lib/libbase_gcl.a $(LIB
+ $(addprefix unixport/lib,$(addsuffix .a,gcl_gprof ansi_gcl_gprof)): \
+ unixport/lib%.a:lib/libbase_gcl_gprof.a unixport/sys_%.o
+-.POSIX: # parallel job ordering
+ E0=s typep nr deftype cmptype cmpinline cmpflet
+ L0=c listlib seqlib type evalmacros
+ E0_OBJS=$(addprefix gcl_,$(addsuffix .o,$(E0)))
+ M0_OBJS=$(filter-out $(E0_OBJS) $(L0_OBJS),$(L_OBJS))
+ L0_OBJS=$(addprefix gcl_,$(addsuffix .o,$(L0)))
++$(addprefix gcl0/,$(L0_OBJS)): | $(addprefix gcl0/,$(M0_OBJS))
++$(addprefix gcl0/,$(M0_OBJS)): | $(addprefix gcl0/,$(E0_OBJS))
+ unixport/libgcl0.a: $(addprefix gcl0/,$(E0_OBJS) $(M0_OBJS) $(L0_OBJS))
+ $(addprefix unixport/lib,$(addsuffix .a,gcl1 gcl2 gcl3 gcl)):\
+@@ -320,6 +329,7 @@ unixport/pcl_gcl:  | unixport/saved_mod_
+ unixport/ansi_gcl:  | unixport/saved_pcl_gcl
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+       echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
++
+ $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+@@ -353,8 +363,8 @@ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o
+ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp
+ gcl0/%.o: | unixport/gcl0
+       rm -f $(@D)/$*.done
+-      $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+-      [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
++      $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
++      [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+               ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -176,29 +176,27 @@ lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS)
+ lib_libbase_gcl_a_RANLIB = $(RANLIB)
+ lib_libbase_gcl_a_LIBADD =
+ am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \
+-      o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \
+-      o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \
+-      o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \
+-      o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \
+-      o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \
+-      o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \
+-      o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \
+-      o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \
+-      o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \
+-      o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \
+-      o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \
+-      o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \
+-      o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \
+-      h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \
+-      h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \
+-      h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \
+-      h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \
+-      h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \
+-      h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
+-      h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
+-      o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
+-      h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
+-      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c \
++      o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c \
++      o/conditional.c o/block.c o/iteration.c o/prog.c o/multival.c \
++      o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c \
++      o/num_comp.c o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c \
++      o/num_rand.c o/earith.c o/array.c o/regexpr.c o/structure.c \
++      o/toplevel.c o/backq.c o/format.c o/unixfsys.c o/unixfasl.c \
++      o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c \
++      o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \
++      o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \
++      o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \
++      o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \
++      h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \
++      h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \
++      h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \
++      h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \
++      h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \
++      h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
++      h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \
++      h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \
++      o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
+       h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
+       h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
+       h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
+@@ -226,9 +224,9 @@ am__lib_libbase_gcl_a_SOURCES_DIST = o/t
+       h/solaris-i386.h o/boot.c
+ am__dirstamp = $(am__leading_dot)dirstamp
+ am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \
+-      o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \
+-      o/macros.$(OBJEXT) o/lex.$(OBJEXT) o/bds.$(OBJEXT) \
+-      o/frame.$(OBJEXT) o/predicate.$(OBJEXT) o/reference.$(OBJEXT) \
++      o/main.$(OBJEXT) o/eval.$(OBJEXT) o/macros.$(OBJEXT) \
++      o/lex.$(OBJEXT) o/bds.$(OBJEXT) o/frame.$(OBJEXT) \
++      o/predicate.$(OBJEXT) o/reference.$(OBJEXT) \
+       o/assignment.$(OBJEXT) o/bind.$(OBJEXT) o/let.$(OBJEXT) \
+       o/conditional.$(OBJEXT) o/block.$(OBJEXT) \
+       o/iteration.$(OBJEXT) o/prog.$(OBJEXT) o/multival.$(OBJEXT) \
+@@ -242,12 +240,11 @@ am__objects_1 = o/typespec.$(OBJEXT) o/a
+       o/unixfasl.$(OBJEXT) o/error.$(OBJEXT) o/unixtime.$(OBJEXT) \
+       o/unixsys.$(OBJEXT) o/unixsave.$(OBJEXT) o/funlink.$(OBJEXT) \
+       o/fat_string.$(OBJEXT) o/run_process.$(OBJEXT) \
+-      o/nfunlink.$(OBJEXT) o/usig.$(OBJEXT) o/usig2.$(OBJEXT) \
+-      o/utils.$(OBJEXT) o/makefun.$(OBJEXT) o/sockets.$(OBJEXT) \
+-      o/gmp_wrappers.$(OBJEXT) o/clxsocket.$(OBJEXT) \
+-      o/nsocket.$(OBJEXT) o/prelink.$(OBJEXT) o/sfasl.$(OBJEXT) \
+-      o/msbrk.$(OBJEXT) o/bcmp.$(OBJEXT) o/bcopy.$(OBJEXT) \
+-      o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \
++      o/usig.$(OBJEXT) o/usig2.$(OBJEXT) o/utils.$(OBJEXT) \
++      o/makefun.$(OBJEXT) o/sockets.$(OBJEXT) \
++      o/gmp_wrappers.$(OBJEXT) o/nsocket.$(OBJEXT) \
++      o/prelink.$(OBJEXT) o/sfasl.$(OBJEXT) o/msbrk.$(OBJEXT) \
++      o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \
+       o/mapfun.$(OBJEXT)
+ am__objects_2 =
+ @AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT)
+@@ -265,29 +262,27 @@ lib_libbase_gcl_gprof_a_AR = $(AR) $(ARF
+ lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB)
+ lib_libbase_gcl_gprof_a_LIBADD =
+ am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \
+-      o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \
+-      o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \
+-      o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \
+-      o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \
+-      o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \
+-      o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \
+-      o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \
+-      o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \
+-      o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \
+-      o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \
+-      o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \
+-      o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \
+-      o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \
+-      h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \
+-      h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \
+-      h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \
+-      h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \
+-      h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \
+-      h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
+-      h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
+-      o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
+-      h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
+-      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      o/gbc.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c \
++      o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c \
++      o/conditional.c o/block.c o/iteration.c o/prog.c o/multival.c \
++      o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c \
++      o/num_comp.c o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c \
++      o/num_rand.c o/earith.c o/array.c o/regexpr.c o/structure.c \
++      o/toplevel.c o/backq.c o/format.c o/unixfsys.c o/unixfasl.c \
++      o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c \
++      o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \
++      o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \
++      o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \
++      o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \
++      h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \
++      h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \
++      h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \
++      h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \
++      h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \
++      h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
++      h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \
++      h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \
++      o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
+       h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
+       h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
+       h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
+@@ -316,7 +311,6 @@ am__lib_libbase_gcl_gprof_a_SOURCES_DIST
+ am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-main.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-eval.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-macros.$(OBJEXT) \
+@@ -361,21 +355,16 @@ am__objects_5 = o/lib_libbase_gcl_gprof_
+       o/lib_libbase_gcl_gprof_a-funlink.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-fat_string.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-run_process.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-nfunlink.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-usig.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-usig2.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-utils.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-makefun.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-sockets.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-gmp_wrappers.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-clxsocket.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-nsocket.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-prelink.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-sfasl.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-msbrk.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-bcmp.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-bcopy.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-bzero.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT)
+@@ -499,13 +488,12 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       gcl-tk/$(DEPDIR)/gcltkaux-tkAppInit.Po \
+       gcl-tk/$(DEPDIR)/gcltkaux-tkMain.Po o/$(DEPDIR)/alloc.Po \
+       o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \
+-      o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \
+-      o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \
+-      o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \
+-      o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \
+-      o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \
+-      o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \
+-      o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \
++      o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po \
++      o/$(DEPDIR)/bind.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \
++      o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \
++      o/$(DEPDIR)/character.Po o/$(DEPDIR)/cmpaux.Po \
++      o/$(DEPDIR)/conditional.Po o/$(DEPDIR)/earith.Po \
++      o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \
+       o/$(DEPDIR)/fat_string.Po o/$(DEPDIR)/file.Po \
+       o/$(DEPDIR)/format.Po o/$(DEPDIR)/frame.Po \
+       o/$(DEPDIR)/funlink.Po o/$(DEPDIR)/gbc.Po \
+@@ -516,19 +504,14 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po \
+@@ -555,7 +538,6 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po \
+-      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po \
+@@ -598,25 +580,25 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/macros.Po o/$(DEPDIR)/main.Po \
+       o/$(DEPDIR)/makefun.Po o/$(DEPDIR)/mapfun.Po \
+       o/$(DEPDIR)/msbrk.Po o/$(DEPDIR)/multival.Po \
+-      o/$(DEPDIR)/new_init.Po o/$(DEPDIR)/nfunlink.Po \
+-      o/$(DEPDIR)/nsocket.Po o/$(DEPDIR)/num_arith.Po \
+-      o/$(DEPDIR)/num_co.Po o/$(DEPDIR)/num_comp.Po \
+-      o/$(DEPDIR)/num_log.Po o/$(DEPDIR)/num_pred.Po \
+-      o/$(DEPDIR)/num_rand.Po o/$(DEPDIR)/num_sfun.Po \
+-      o/$(DEPDIR)/number.Po o/$(DEPDIR)/package.Po \
+-      o/$(DEPDIR)/pathname.Po o/$(DEPDIR)/predicate.Po \
+-      o/$(DEPDIR)/prelink.Po o/$(DEPDIR)/print.Po \
+-      o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po o/$(DEPDIR)/read.Po \
+-      o/$(DEPDIR)/reference.Po o/$(DEPDIR)/regexpr.Po \
+-      o/$(DEPDIR)/run_process.Po o/$(DEPDIR)/sequence.Po \
+-      o/$(DEPDIR)/sfasl.Po o/$(DEPDIR)/sockets.Po \
+-      o/$(DEPDIR)/string.Po o/$(DEPDIR)/structure.Po \
+-      o/$(DEPDIR)/symbol.Po o/$(DEPDIR)/toplevel.Po \
+-      o/$(DEPDIR)/typespec.Po o/$(DEPDIR)/unixfasl.Po \
+-      o/$(DEPDIR)/unixfsys.Po o/$(DEPDIR)/unixsave.Po \
+-      o/$(DEPDIR)/unixsys.Po o/$(DEPDIR)/unixtime.Po \
+-      o/$(DEPDIR)/user_init.Po o/$(DEPDIR)/user_match.Po \
+-      o/$(DEPDIR)/usig.Po o/$(DEPDIR)/usig2.Po o/$(DEPDIR)/utils.Po \
++      o/$(DEPDIR)/new_init.Po o/$(DEPDIR)/nsocket.Po \
++      o/$(DEPDIR)/num_arith.Po o/$(DEPDIR)/num_co.Po \
++      o/$(DEPDIR)/num_comp.Po o/$(DEPDIR)/num_log.Po \
++      o/$(DEPDIR)/num_pred.Po o/$(DEPDIR)/num_rand.Po \
++      o/$(DEPDIR)/num_sfun.Po o/$(DEPDIR)/number.Po \
++      o/$(DEPDIR)/package.Po o/$(DEPDIR)/pathname.Po \
++      o/$(DEPDIR)/predicate.Po o/$(DEPDIR)/prelink.Po \
++      o/$(DEPDIR)/print.Po o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po \
++      o/$(DEPDIR)/read.Po o/$(DEPDIR)/reference.Po \
++      o/$(DEPDIR)/regexpr.Po o/$(DEPDIR)/run_process.Po \
++      o/$(DEPDIR)/sequence.Po o/$(DEPDIR)/sfasl.Po \
++      o/$(DEPDIR)/sockets.Po o/$(DEPDIR)/string.Po \
++      o/$(DEPDIR)/structure.Po o/$(DEPDIR)/symbol.Po \
++      o/$(DEPDIR)/toplevel.Po o/$(DEPDIR)/typespec.Po \
++      o/$(DEPDIR)/unixfasl.Po o/$(DEPDIR)/unixfsys.Po \
++      o/$(DEPDIR)/unixsave.Po o/$(DEPDIR)/unixsys.Po \
++      o/$(DEPDIR)/unixtime.Po o/$(DEPDIR)/user_init.Po \
++      o/$(DEPDIR)/user_match.Po o/$(DEPDIR)/usig.Po \
++      o/$(DEPDIR)/usig2.Po o/$(DEPDIR)/utils.Po \
+       xgcl-2/$(DEPDIR)/Events.Po xgcl-2/$(DEPDIR)/XStruct-2.Po \
+       xgcl-2/$(DEPDIR)/XStruct-4.Po xgcl-2/$(DEPDIR)/Xutil-2.Po \
+       xgcl-2/$(DEPDIR)/general-c.Po \
+@@ -872,6 +854,7 @@ PRELINK_CHECK = @PRELINK_CHECK@
+ RANLIB = @RANLIB@
+ RL_LIB = @RL_LIB@
+ RL_OBJS = @RL_OBJS@
++SEGMENT_ALIGNMENT_BITS = @SEGMENT_ALIGNMENT_BITS@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STRIP = @STRIP@
+@@ -879,6 +862,7 @@ TCLSH = @TCLSH@
+ TCL_INCLUDE = @TCL_INCLUDE@
+ TCL_LIBRARY = @TCL_LIBRARY@
+ TCL_LIB_SPEC = @TCL_LIB_SPEC@
++TEXT_BASE = @TEXT_BASE@
+ TK_CONFIG_PREFIX = @TK_CONFIG_PREFIX@
+ TK_INCLUDE = @TK_INCLUDE@
+ TK_LIBRARY = @TK_LIBRARY@
+@@ -1057,16 +1041,18 @@ ARCHT_H = h/elf32_armhf_reloc.h h/elf32_
+       h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h h/solaris-i386.h
+ BUILT_H = h/new_decl.h o/boot.h h/cmpinclude.h
+-C_SRC = o/typespec.c o/alloc.c o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\
++C_SRC = o/typespec.c o/alloc.c o/gbc.c  o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\
+       o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c o/conditional.c o/block.c o/iteration.c\
+       o/prog.c o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c o/num_comp.c\
+       o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c o/num_rand.c o/earith.c\
+       o/array.c o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c\
+       o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c  o/fat_string.c\
+-      o/run_process.c o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
+-      o/clxsocket.c o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
+-      o/bcmp.c o/bcopy.c o/bzero.c o/user_init.c o/user_match.c o/mapfun.c
++      o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
++      o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
++      o/user_init.c o/user_match.c o/mapfun.c
++#     o/bitop.c o/nfunlink.c o/clxsocket.c
++#     o/bcmp.c o/bcopy.c o/bzero.c
+ D_SRC = o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\
+       o/read.d o/sequence.d o/string.d o/symbol.d
+@@ -1339,7 +1325,6 @@ o/$(DEPDIR)/$(am__dirstamp):
+ o/typespec.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/alloc.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/gbc.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+-o/bitop.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/main.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/eval.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/macros.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+@@ -1384,7 +1369,6 @@ o/unixsave.$(OBJEXT): o/$(am__dirstamp)
+ o/funlink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/fat_string.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/run_process.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+-o/nfunlink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/usig.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/usig2.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/utils.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+@@ -1392,14 +1376,10 @@ o/makefun.$(OBJEXT): o/$(am__dirstamp) o
+ o/sockets.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/gmp_wrappers.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+-o/clxsocket.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/nsocket.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/prelink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/sfasl.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/msbrk.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+-o/bcmp.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+-o/bcopy.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+-o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+@@ -1433,8 +1413,6 @@ o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-main.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-eval.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1523,8 +1501,6 @@ o/lib_libbase_gcl_gprof_a-fat_string.$(O
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-run_process.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-nfunlink.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-usig.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-usig2.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1537,8 +1513,6 @@ o/lib_libbase_gcl_gprof_a-sockets.$(OBJE
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-gmp_wrappers.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-clxsocket.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-nsocket.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-prelink.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1547,12 +1521,6 @@ o/lib_libbase_gcl_gprof_a-sfasl.$(OBJEXT
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-msbrk.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-bcmp.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-bcopy.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+-o/lib_libbase_gcl_gprof_a-bzero.$(OBJEXT): o/$(am__dirstamp) \
+-      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1763,19 +1731,14 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/array.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/assignment.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/backq.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bcmp.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bcopy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bds.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/big.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/character.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/clxsocket.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cmpaux.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/conditional.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/earith.Po@am__quote@ # am--include-marker
+@@ -1798,19 +1761,14 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po@am__quote@ # am--include-marker
+@@ -1837,7 +1795,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po@am__quote@ # am--include-marker
+@@ -1885,7 +1842,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/msbrk.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/multival.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/new_init.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/nfunlink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/nsocket.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/num_arith.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/num_co.Po@am__quote@ # am--include-marker
+@@ -1999,20 +1955,6 @@ o/lib_libbase_gcl_gprof_a-gbc.obj: o/gbc
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-gbc.obj `if test -f 'o/gbc.c'; then $(CYGPATH_W) 'o/gbc.c'; else $(CYGPATH_W) '$(srcdir)/o/gbc.c'; fi`
+-o/lib_libbase_gcl_gprof_a-bitop.o: o/bitop.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bitop.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo -c -o o/lib_libbase_gcl_gprof_a-bitop.o `test -f 'o/bitop.c' || echo '$(srcdir)/'`o/bitop.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bitop.c' object='o/lib_libbase_gcl_gprof_a-bitop.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bitop.o `test -f 'o/bitop.c' || echo '$(srcdir)/'`o/bitop.c
+-
+-o/lib_libbase_gcl_gprof_a-bitop.obj: o/bitop.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bitop.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo -c -o o/lib_libbase_gcl_gprof_a-bitop.obj `if test -f 'o/bitop.c'; then $(CYGPATH_W) 'o/bitop.c'; else $(CYGPATH_W) '$(srcdir)/o/bitop.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bitop.c' object='o/lib_libbase_gcl_gprof_a-bitop.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bitop.obj `if test -f 'o/bitop.c'; then $(CYGPATH_W) 'o/bitop.c'; else $(CYGPATH_W) '$(srcdir)/o/bitop.c'; fi`
+-
+ o/lib_libbase_gcl_gprof_a-main.o: o/main.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-main.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Tpo -c -o o/lib_libbase_gcl_gprof_a-main.o `test -f 'o/main.c' || echo '$(srcdir)/'`o/main.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Po
+@@ -2629,20 +2571,6 @@ o/lib_libbase_gcl_gprof_a-run_process.ob
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-run_process.obj `if test -f 'o/run_process.c'; then $(CYGPATH_W) 'o/run_process.c'; else $(CYGPATH_W) '$(srcdir)/o/run_process.c'; fi`
+-o/lib_libbase_gcl_gprof_a-nfunlink.o: o/nfunlink.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nfunlink.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo -c -o o/lib_libbase_gcl_gprof_a-nfunlink.o `test -f 'o/nfunlink.c' || echo '$(srcdir)/'`o/nfunlink.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/nfunlink.c' object='o/lib_libbase_gcl_gprof_a-nfunlink.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-nfunlink.o `test -f 'o/nfunlink.c' || echo '$(srcdir)/'`o/nfunlink.c
+-
+-o/lib_libbase_gcl_gprof_a-nfunlink.obj: o/nfunlink.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nfunlink.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo -c -o o/lib_libbase_gcl_gprof_a-nfunlink.obj `if test -f 'o/nfunlink.c'; then $(CYGPATH_W) 'o/nfunlink.c'; else $(CYGPATH_W) '$(srcdir)/o/nfunlink.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/nfunlink.c' object='o/lib_libbase_gcl_gprof_a-nfunlink.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-nfunlink.obj `if test -f 'o/nfunlink.c'; then $(CYGPATH_W) 'o/nfunlink.c'; else $(CYGPATH_W) '$(srcdir)/o/nfunlink.c'; fi`
+-
+ o/lib_libbase_gcl_gprof_a-usig.o: o/usig.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-usig.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Tpo -c -o o/lib_libbase_gcl_gprof_a-usig.o `test -f 'o/usig.c' || echo '$(srcdir)/'`o/usig.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Po
+@@ -2727,20 +2655,6 @@ o/lib_libbase_gcl_gprof_a-gmp_wrappers.o
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-gmp_wrappers.obj `if test -f 'o/gmp_wrappers.c'; then $(CYGPATH_W) 'o/gmp_wrappers.c'; else $(CYGPATH_W) '$(srcdir)/o/gmp_wrappers.c'; fi`
+-o/lib_libbase_gcl_gprof_a-clxsocket.o: o/clxsocket.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-clxsocket.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-clxsocket.o `test -f 'o/clxsocket.c' || echo '$(srcdir)/'`o/clxsocket.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/clxsocket.c' object='o/lib_libbase_gcl_gprof_a-clxsocket.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-clxsocket.o `test -f 'o/clxsocket.c' || echo '$(srcdir)/'`o/clxsocket.c
+-
+-o/lib_libbase_gcl_gprof_a-clxsocket.obj: o/clxsocket.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-clxsocket.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-clxsocket.obj `if test -f 'o/clxsocket.c'; then $(CYGPATH_W) 'o/clxsocket.c'; else $(CYGPATH_W) '$(srcdir)/o/clxsocket.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/clxsocket.c' object='o/lib_libbase_gcl_gprof_a-clxsocket.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-clxsocket.obj `if test -f 'o/clxsocket.c'; then $(CYGPATH_W) 'o/clxsocket.c'; else $(CYGPATH_W) '$(srcdir)/o/clxsocket.c'; fi`
+-
+ o/lib_libbase_gcl_gprof_a-nsocket.o: o/nsocket.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nsocket.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-nsocket.o `test -f 'o/nsocket.c' || echo '$(srcdir)/'`o/nsocket.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po
+@@ -2797,48 +2711,6 @@ o/lib_libbase_gcl_gprof_a-msbrk.obj: o/m
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-msbrk.obj `if test -f 'o/msbrk.c'; then $(CYGPATH_W) 'o/msbrk.c'; else $(CYGPATH_W) '$(srcdir)/o/msbrk.c'; fi`
+-o/lib_libbase_gcl_gprof_a-bcmp.o: o/bcmp.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcmp.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcmp.o `test -f 'o/bcmp.c' || echo '$(srcdir)/'`o/bcmp.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bcmp.c' object='o/lib_libbase_gcl_gprof_a-bcmp.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcmp.o `test -f 'o/bcmp.c' || echo '$(srcdir)/'`o/bcmp.c
+-
+-o/lib_libbase_gcl_gprof_a-bcmp.obj: o/bcmp.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcmp.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcmp.obj `if test -f 'o/bcmp.c'; then $(CYGPATH_W) 'o/bcmp.c'; else $(CYGPATH_W) '$(srcdir)/o/bcmp.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bcmp.c' object='o/lib_libbase_gcl_gprof_a-bcmp.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcmp.obj `if test -f 'o/bcmp.c'; then $(CYGPATH_W) 'o/bcmp.c'; else $(CYGPATH_W) '$(srcdir)/o/bcmp.c'; fi`
+-
+-o/lib_libbase_gcl_gprof_a-bcopy.o: o/bcopy.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcopy.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcopy.o `test -f 'o/bcopy.c' || echo '$(srcdir)/'`o/bcopy.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bcopy.c' object='o/lib_libbase_gcl_gprof_a-bcopy.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcopy.o `test -f 'o/bcopy.c' || echo '$(srcdir)/'`o/bcopy.c
+-
+-o/lib_libbase_gcl_gprof_a-bcopy.obj: o/bcopy.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcopy.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcopy.obj `if test -f 'o/bcopy.c'; then $(CYGPATH_W) 'o/bcopy.c'; else $(CYGPATH_W) '$(srcdir)/o/bcopy.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bcopy.c' object='o/lib_libbase_gcl_gprof_a-bcopy.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcopy.obj `if test -f 'o/bcopy.c'; then $(CYGPATH_W) 'o/bcopy.c'; else $(CYGPATH_W) '$(srcdir)/o/bcopy.c'; fi`
+-
+-o/lib_libbase_gcl_gprof_a-bzero.o: o/bzero.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bzero.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo -c -o o/lib_libbase_gcl_gprof_a-bzero.o `test -f 'o/bzero.c' || echo '$(srcdir)/'`o/bzero.c
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bzero.c' object='o/lib_libbase_gcl_gprof_a-bzero.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bzero.o `test -f 'o/bzero.c' || echo '$(srcdir)/'`o/bzero.c
+-
+-o/lib_libbase_gcl_gprof_a-bzero.obj: o/bzero.c
+-@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bzero.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo -c -o o/lib_libbase_gcl_gprof_a-bzero.obj `if test -f 'o/bzero.c'; then $(CYGPATH_W) 'o/bzero.c'; else $(CYGPATH_W) '$(srcdir)/o/bzero.c'; fi`
+-@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/bzero.c' object='o/lib_libbase_gcl_gprof_a-bzero.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bzero.obj `if test -f 'o/bzero.c'; then $(CYGPATH_W) 'o/bzero.c'; else $(CYGPATH_W) '$(srcdir)/o/bzero.c'; fi`
+-
+ o/lib_libbase_gcl_gprof_a-user_init.o: o/user_init.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-user_init.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Tpo -c -o o/lib_libbase_gcl_gprof_a-user_init.o `test -f 'o/user_init.c' || echo '$(srcdir)/'`o/user_init.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Po
+@@ -4122,19 +3994,14 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/array.Po
+       -rm -f o/$(DEPDIR)/assignment.Po
+       -rm -f o/$(DEPDIR)/backq.Po
+-      -rm -f o/$(DEPDIR)/bcmp.Po
+-      -rm -f o/$(DEPDIR)/bcopy.Po
+       -rm -f o/$(DEPDIR)/bds.Po
+       -rm -f o/$(DEPDIR)/big.Po
+       -rm -f o/$(DEPDIR)/bind.Po
+-      -rm -f o/$(DEPDIR)/bitop.Po
+       -rm -f o/$(DEPDIR)/block.Po
+       -rm -f o/$(DEPDIR)/boot.Po
+-      -rm -f o/$(DEPDIR)/bzero.Po
+       -rm -f o/$(DEPDIR)/catch.Po
+       -rm -f o/$(DEPDIR)/cfun.Po
+       -rm -f o/$(DEPDIR)/character.Po
+-      -rm -f o/$(DEPDIR)/clxsocket.Po
+       -rm -f o/$(DEPDIR)/cmpaux.Po
+       -rm -f o/$(DEPDIR)/conditional.Po
+       -rm -f o/$(DEPDIR)/earith.Po
+@@ -4157,19 +4024,14 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po
+@@ -4196,7 +4058,6 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po
+@@ -4244,7 +4105,6 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/msbrk.Po
+       -rm -f o/$(DEPDIR)/multival.Po
+       -rm -f o/$(DEPDIR)/new_init.Po
+-      -rm -f o/$(DEPDIR)/nfunlink.Po
+       -rm -f o/$(DEPDIR)/nsocket.Po
+       -rm -f o/$(DEPDIR)/num_arith.Po
+       -rm -f o/$(DEPDIR)/num_co.Po
+@@ -4446,19 +4306,14 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/array.Po
+       -rm -f o/$(DEPDIR)/assignment.Po
+       -rm -f o/$(DEPDIR)/backq.Po
+-      -rm -f o/$(DEPDIR)/bcmp.Po
+-      -rm -f o/$(DEPDIR)/bcopy.Po
+       -rm -f o/$(DEPDIR)/bds.Po
+       -rm -f o/$(DEPDIR)/big.Po
+       -rm -f o/$(DEPDIR)/bind.Po
+-      -rm -f o/$(DEPDIR)/bitop.Po
+       -rm -f o/$(DEPDIR)/block.Po
+       -rm -f o/$(DEPDIR)/boot.Po
+-      -rm -f o/$(DEPDIR)/bzero.Po
+       -rm -f o/$(DEPDIR)/catch.Po
+       -rm -f o/$(DEPDIR)/cfun.Po
+       -rm -f o/$(DEPDIR)/character.Po
+-      -rm -f o/$(DEPDIR)/clxsocket.Po
+       -rm -f o/$(DEPDIR)/cmpaux.Po
+       -rm -f o/$(DEPDIR)/conditional.Po
+       -rm -f o/$(DEPDIR)/earith.Po
+@@ -4481,19 +4336,14 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po
+@@ -4520,7 +4370,6 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po
+-      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po
+@@ -4568,7 +4417,6 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/msbrk.Po
+       -rm -f o/$(DEPDIR)/multival.Po
+       -rm -f o/$(DEPDIR)/new_init.Po
+-      -rm -f o/$(DEPDIR)/nfunlink.Po
+       -rm -f o/$(DEPDIR)/nsocket.Po
+       -rm -f o/$(DEPDIR)/num_arith.Po
+       -rm -f o/$(DEPDIR)/num_co.Po
+@@ -4716,13 +4564,19 @@ unixport/saved_%: | unixport/raw_% unixp
+               ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \
+               echo "(system:save-system \"../$@\")" | \
+               cat ../unixport/init_raw.lsp prof_init.lsp - | \
+-                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
++                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+                               ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
+-              rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
++              rm -f ../unixport/gcl_cmpnopt.lsp
+       rm -rf sb_$*
+ unixport/raw_%: unixport/lib%.a $(FF) $(LF)
+       $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro
++      ! which otool >/dev/null || \
++              ! otool -l $@ |grep -q LC_DYLD_CHAINED_FIXUPS || \
++              ( echo Relinking raw image for mac arm && \
++                $(CC) \
++                     $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
++                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -4737,8 +4591,8 @@ $(addprefix unixport/lib,$(addsuffix .a,
+ unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o
+ $(addprefix unixport/lib,$(addsuffix .a,gcl_gprof ansi_gcl_gprof)): \
+ unixport/lib%.a:lib/libbase_gcl_gprof.a unixport/sys_%.o
+-
+-.POSIX: # parallel job ordering
++$(addprefix gcl0/,$(L0_OBJS)): | $(addprefix gcl0/,$(M0_OBJS))
++$(addprefix gcl0/,$(M0_OBJS)): | $(addprefix gcl0/,$(E0_OBJS))
+ unixport/libgcl0.a: $(addprefix gcl0/,$(E0_OBJS) $(M0_OBJS) $(L0_OBJS))
+ $(addprefix unixport/lib,$(addsuffix .a,gcl1 gcl2 gcl3 gcl)):\
+@@ -4776,6 +4630,7 @@ unixport/pcl_gcl:  | unixport/saved_mod_
+ unixport/ansi_gcl:  | unixport/saved_pcl_gcl
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+       echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
++
+ $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+@@ -4809,8 +4664,8 @@ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o
+ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp
+ gcl0/%.o: | unixport/gcl0
+       rm -f $(@D)/$*.done
+-      $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+-      [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
++      $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
++      [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+               ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+--- /dev/null
++++ gcl27-2.7.1/bin/mac_arm_relink
+@@ -0,0 +1,37 @@
++#!/usr/bin/awk -f
++
++function from_hex (hh) {
++    jj=0;
++    if (substr(hh,1,2)=="0x")
++      hh=substr(hh,3,length(hh));
++    for (ii=1;ii<=length(hh);ii++)
++      jj=jj*16+A[substr(hh,ii,1)];
++    return jj;
++}
++function to_hex(jj) {
++    ss="";
++    for (;jj;jj=kk) {
++      kk=int(jj/16);
++      ss=substr(z,jj-kk*16+1,1) ss;
++    }
++    return ss;
++}
++
++
++BEGIN{z="0123456789abcdef";for (i=1;i<=length(z);i++) A[substr(z,i,1)]=i-1;}
++/^  *cmd / {c=$2;next}
++/^  *segname/ {n=$2;next}
++/^  *vmsize/ {if (c=="LC_SEGMENT_64") A[n]=$2;}
++END {
++    p=1;
++    for (i=0;i<ps;i++) p=p*2;
++    j="-Wl,-no_fixup_chains -Wl,-segaddr,__TEXT," base;
++    dc=from_hex(base);
++    dc=int((dc+from_hex(A["__TEXT"])+p+p-1)/p)*p;
++    j=j " -Wl,-segaddr,__DATA_CONST,0x" to_hex(dc);
++    dc=int((dc+from_hex(A["__DATA_CONST"])+p+p-1)/p)*p;
++    j=j " -Wl,-segaddr,__DATA,0x" to_hex(dc);
++    dc=int((dc+from_hex(A["__DATA"])+p+p-1)/p)*p;
++    j=j " -Wl,-segaddr,__HEAP,0x" to_hex(dc);
++    print j;
++}
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -144,7 +144,7 @@
+       (list (make-list (length all) :initial-element t)
+           '* #.(flags ans set svt) 
+           (ms
+-          "({object _z,_f=fcall.fun=#0;fixnum _v=fcall.valp=(fixnum)#v;char _n=fcall.argd=#n-1;
++          "({object _z,_f=fcall.fun=#0;fixnum _v=fcall.valp=(fixnum)#v;volatile char _n=fcall.argd=#n-1;
+         _n=Rset &&
+             !_f->fun.fun_argd &&
+             _n>=_f->fun.fun_minarg &&
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp
+@@ -132,7 +132,7 @@
+           (ms
+            "({fixnum _v=(fixnum)#v;object _z,_f=(#0),_l=(#1),_ll=_l;
+         object _x4=Cnil,_x3=Cnil,_x2=Cnil,_x1=Cnil,_x0=Cnil;
+-        char _m=(#n-2),_n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1);
++        char _m=(#n-2);volatile char _n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1);
+         char _reg=_f->fun.fun_minarg==_f->fun.fun_maxarg;
+         fcall.fun=_f;fcall.valp=_v;fcall.argd=-(#n-1);
+         switch (_n) {
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptag.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptag.lsp
+@@ -62,7 +62,8 @@
+   (unless (tag-p form)
+     (mapc (lambda (x)
+           (when (var-p x)
+-            (incf (var-register x) (the fixnum *reg-amount*))))
++            (unless (>= (var-register x) (ash (the fixnum *reg-amount*) 2))
++              (incf (var-register x) (the fixnum *reg-amount*)))))
+         (info-ref (cadr form)))))
+ (defun intersection-p (l1 l2)
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp
+@@ -502,6 +502,18 @@
+ (defun range-decomp (tp)
+   (mapcan (lambda (x &aux (f (pop x))(z (type-and tp x))) (when z (list (cons f z)))) +cmp-range-types+))
++(defun allocate-basic-stream-propagator (f tp)
++  (declare (ignore f))
++  (reduce
++   (lambda (y x)
++     (if (type-and (car x) tp)
++       (type-or1 (cadr x) y)
++       y))
++   '#.(mapcar (lambda (x) (list (object-tp x) (cmp-norm-tp (type-of (allocate-basic-stream x)))))
++           (let ((i -1))
++             (mapl (lambda (x) (setf (car x) (incf i))) (make-list (si::btp-count #tstream)))))
++   :initial-value nil))
++(si::putprop 'allocate-basic-stream 'allocate-basic-stream-propagator 'type-propagator)
+ (dolist (l '(si::number-plus si::number-minus si::number-times + - * exp tanh sinh asinh))
+   (si::putprop l 'super-range 'type-propagator))
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -699,6 +699,8 @@ GMP
+ HAVE_MALLOC_ZONE_MEMALIGN
+ AMM_GPROF_FALSE
+ AMM_GPROF_TRUE
++SEGMENT_ALIGNMENT_BITS
++TEXT_BASE
+ GCL_CC
+ CPP
+ RANLIB
+@@ -827,6 +829,11 @@ enable_debug
+ enable_static
+ enable_pic
+ enable_dependency_tracking
++enable_text_base
++enable_segment_alignment_bits
++enable_initial_heap_vmsize
++enable_saved_pre_image_span
++enable_saved_image_span
+ enable_gprof
+ with_x
+ enable_xdr
+@@ -1483,7 +1490,7 @@ Optional Features:
+   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+   --enable-silent-rules   less verbose build output (undo: "make V=1")
+   --disable-silent-rules  verbose build output (undo: "make V=0")
+-put bootstrap code in shared library to be discarded
++  --enable-libtool will put bootstrap code in shared library to be discarded
+   --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs
+   --enable-widecons will use a three word cons with simplified typing
+   --enable-safecdr will protect cdr from immfix and speed up type processing
+@@ -1493,7 +1500,7 @@ put bootstrap code in shared library to
+   --enable-bdssize=XXXX will compile in a binding stack of size XXX
+   --enable-ihssize=XXXX will compile in a invocation history stack of size XXX
+   --enable-frssize=XXXX will compile in a frame stack of size XXX
+---enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info
++  --enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info
+   --enable-xgcl=yes will compile in support for XGCL
+   --enable-debug builds gcl with -g in CFLAGS to enable running under gdb
+   --enable-static will link your GCL against static as opposed to shared system libraries
+@@ -1502,11 +1509,16 @@ put bootstrap code in shared library to
+                           do not reject slow dependency extractors
+   --disable-dependency-tracking
+                           speeds up one-time build
++  --enable-text_base=0x.... set base address for __TEXT
++  --enable-segment_alignment_bits=... set bit alignment for mach-o image segments
++  --enable-initial_heap_vmsize=0x.... set heap size for raw images
++  --enable-saved_pre_image_span=0x.... set address span for saved pre images
++  --enable-saved_image_span=0x.... set address span for saved images
+   --enable-gprof builds gcl with -pg in CFLAGS to enable profiling with gprof
+   --enable-xdr=yes will compile in support for XDR
+   --enable-immfix will enable an immediate fixnum table above the C stack
+   --enable-fastimmfix=XXXX will reject low immediate fixnums unless 2^XXX can be attained
+- --enable-min_pagewidth=xxx sets 1<<xxx byte pages
++  --enable-min_pagewidth=xxx sets 1<<xxx byte pages
+   --enable-readline    enables command line completion via the readline library
+   --enable-tcltk will try to build gcl-tk
+   --enable-tkconfig=XXXX will force the use of a TK_CONFIG_PREFIX=XXXXX as place to look for tkConfig.sh and tclConfig.sh
+@@ -4148,6 +4160,7 @@ case $canonical in
+     powerpc*linux*) use=powerpc-linux;;
+     powerpc-*-darwin*) use=powerpc-macosx;;
+     *86*darwin*) use=386-macosx;;
++    *aarch64*darwin*) use=aarch64-macosx;;
+     i*mingw*|i*msys*) use=mingw;;
+     *cygwin*)
+         if $CC -v 2>&1 | fgrep ming > /dev/null ;
+@@ -7272,7 +7285,7 @@ case $use in
+     386-macosx)
+ #     assert_arg_to_cflags -Wno-error=implicit-function-declaration
+       add_arg_to_cflags -Wno-incomplete-setjmp-declaration
+-      assert_arg_to_ldflags -Wl,-no_pie
++      assert_arg_to_ldflags -Wl,-no_pie #FIXME remove
+       if test "$build_cpu" = "x86_64" ; then
+           assert_arg_to_cflags -m64
+           assert_arg_to_ldflags -m64
+@@ -7282,9 +7295,76 @@ case $use in
+           assert_arg_to_ldflags -m32
+           assert_arg_to_ldflags -Wl,-headerpad,56
+         fi;;
++    aarch64-macosx)
++#     LISP_CFLAGS="$LISP_CFLAGS -mcmodel=large" #fixme 26bit trampolines
++      # Check whether --enable-text_base was given.
++if test ${enable_text_base+y}
++then :
++  enableval=$enable_text_base; TEXT_BASE=$enableval
++else case e in #(
++  e) TEXT_BASE=0x10000000000 ;;
++esac
++fi
++
++
++      # Check whether --enable-segment_alignment_bits was given.
++if test ${enable_segment_alignment_bits+y}
++then :
++  enableval=$enable_segment_alignment_bits; SEGMENT_ALIGNMENT_BITS=$enableval
++else case e in #(
++  e) SEGMENT_ALIGNMENT_BITS=14 ;;
++esac
++fi
++
++
++      ;;
+     FreeBSD) assert_arg_to_ldflags -Z;;
+ esac
++case $use in
++    *macosx*)
++        # Check whether --enable-initial_heap_vmsize was given.
++if test ${enable_initial_heap_vmsize+y}
++then :
++  enableval=$enable_initial_heap_vmsize; INITIAL_HEAP_VMSIZE=$enableval
++else case e in #(
++  e) INITIAL_HEAP_VMSIZE=0x70000000 ;;
++esac
++fi
++
++
++printf "%s\n" "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h
++
++
++      #Support libboot option
++      # Check whether --enable-saved_pre_image_span was given.
++if test ${enable_saved_pre_image_span+y}
++then :
++  enableval=$enable_saved_pre_image_span; SAVED_PRE_IMAGE_SPAN=$enableval
++else case e in #(
++  e) SAVED_PRE_IMAGE_SPAN=0x100000000 ;;
++esac
++fi
++
++
++printf "%s\n" "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h
++
++
++      # Check whether --enable-saved_image_span was given.
++if test ${enable_saved_image_span+y}
++then :
++  enableval=$enable_saved_image_span; SAVED_IMAGE_SPAN=$enableval
++else case e in #(
++  e) SAVED_IMAGE_SPAN=0x2000000000 ;;
++esac
++fi
++
++
++printf "%s\n" "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h
++
++      ;;
++esac
++
+ if test "$enable_static" = "yes" ; then
+     assert_arg_to_ldflags -static
+     assert_arg_to_ldflags -Wl,-zmuldefs
+@@ -11829,6 +11909,7 @@ LI_GITTAG="$GIT_TAG"
+ LI_RELEASE="$RELEASE"
++#LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\""
+ LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
+ LI_DFP="\"$GPL_FLAG\""
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -60,6 +60,7 @@ case $canonical in
+     powerpc*linux*) use=powerpc-linux;;
+     powerpc-*-darwin*) use=powerpc-macosx;;
+     *86*darwin*) use=386-macosx;;
++    *aarch64*darwin*) use=aarch64-macosx;;
+     i*mingw*|i*msys*) use=mingw;;
+     *cygwin*)
+         if $CC -v 2>&1 | fgrep ming > /dev/null ;
+@@ -71,7 +72,7 @@ case $canonical in
+     i?86-pc-solaris*) use=solaris-i386;;
+ esac
+-AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded],
++AC_ARG_ENABLE([libboot],[  --enable-libtool will put bootstrap code in shared library to be discarded],
+             [libboot=$enableval],[libboot="yes"])
+ if test "$use" = "gnuwin95" ; then
+@@ -132,7 +133,7 @@ AC_ARG_ENABLE([ihssize],[  --enable-ihss
+ AC_ARG_ENABLE([frssize],[  --enable-frssize=XXXX will compile in a frame stack of size XXX],
+             [AC_DEFINE_UNQUOTED(FRSSIZE,$enableval,[frame stack size])])
+-AC_ARG_ENABLE([infodir],[--enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info],
++AC_ARG_ENABLE([infodir],[  --enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info],
+             [INFO_DIR=$enableval],[INFO_DIR=$prefix/share/info])
+ INFO_DIR=`eval echo $INFO_DIR/`
+@@ -329,7 +330,7 @@ case $use in
+     386-macosx)
+ #     assert_arg_to_cflags -Wno-error=implicit-function-declaration
+       add_arg_to_cflags -Wno-incomplete-setjmp-declaration
+-      assert_arg_to_ldflags -Wl,-no_pie
++      assert_arg_to_ldflags -Wl,-no_pie #FIXME remove
+       if test "$build_cpu" = "x86_64" ; then
+           assert_arg_to_cflags -m64
+           assert_arg_to_ldflags -m64
+@@ -339,9 +340,35 @@ case $use in
+           assert_arg_to_ldflags -m32
+           assert_arg_to_ldflags -Wl,-headerpad,56
+         fi;;
++    aarch64-macosx)
++#     LISP_CFLAGS="$LISP_CFLAGS -mcmodel=large" #fixme 26bit trampolines
++      AC_ARG_ENABLE([text_base],[  --enable-text_base=0x.... set base address for __TEXT],
++            [TEXT_BASE=$enableval],[TEXT_BASE=0x10000000000])
++      AC_SUBST(TEXT_BASE)
++      AC_ARG_ENABLE([segment_alignment_bits],[  --enable-segment_alignment_bits=... set bit alignment for mach-o image segments],
++            [SEGMENT_ALIGNMENT_BITS=$enableval],[SEGMENT_ALIGNMENT_BITS=14])
++      AC_SUBST(SEGMENT_ALIGNMENT_BITS)
++      ;;
+     FreeBSD) assert_arg_to_ldflags -Z;;
+ esac
++case $use in
++    *macosx*)
++        AC_ARG_ENABLE([initial_heap_vmsize],[  --enable-initial_heap_vmsize=0x.... set heap size for raw images],
++          [INITIAL_HEAP_VMSIZE=$enableval],[INITIAL_HEAP_VMSIZE=0x70000000])
++      AC_DEFINE_UNQUOTED(INITIAL_HEAP_VMSIZE,$INITIAL_HEAP_VMSIZE,[heap size for raw images])
++
++      #Support libboot option
++      AC_ARG_ENABLE([saved_pre_image_span],[  --enable-saved_pre_image_span=0x.... set address span for saved pre images],
++          [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0x100000000])
++      AC_DEFINE_UNQUOTED(SAVED_PRE_IMAGE_SPAN,$SAVED_PRE_IMAGE_SPAN,[address span for saved pre images])
++
++      AC_ARG_ENABLE([saved_image_span],[  --enable-saved_image_span=0x.... set address span for saved images],
++          [SAVED_IMAGE_SPAN=$enableval],[SAVED_IMAGE_SPAN=0x2000000000])
++      AC_DEFINE_UNQUOTED(SAVED_IMAGE_SPAN,$SAVED_IMAGE_SPAN,[address span for saved images])
++      ;;
++esac
++
+ if test "$enable_static" = "yes" ; then
+     assert_arg_to_ldflags -static
+     assert_arg_to_ldflags -Wl,-zmuldefs
+@@ -922,7 +949,7 @@ else
+    AC_MSG_RESULT([not found])
+ fi
+-AC_ARG_ENABLE(min_pagewidth,[ --enable-min_pagewidth=xxx sets 1<<xxx byte pages],
++AC_ARG_ENABLE(min_pagewidth,[  --enable-min_pagewidth=xxx sets 1<<xxx byte pages],
+              [min_pagewidth=$enableval],[])
+ AC_MSG_CHECKING(for pagewidth)
+@@ -1924,6 +1951,7 @@ LI_GITTAG="$GIT_TAG"
+ AC_SUBST(LI_GITTAG)
+ LI_RELEASE="$RELEASE"
+ AC_SUBST(LI_RELEASE)
++#LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\""
+ LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
+ AC_SUBST(LI_CC)
+ LI_DFP="\"$GPL_FLAG\""
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre17"
++"Version_2_7_2pre18"
+--- gcl27-2.7.1.orig/h/aarch64-linux.h
++++ gcl27-2.7.1/h/aarch64-linux.h
+@@ -7,3 +7,5 @@
+ #define SGC
+ #define OUTPUT_MACH bfd_mach_aarch64
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- /dev/null
++++ gcl27-2.7.1/h/aarch64-macosx.h
+@@ -0,0 +1,157 @@
++/*
++    GCL config file for Mac OS X.
++
++    To be used with the following configure switches :
++        --enable-debug (optional)
++        --enable-machine=powerpc-macosx
++        --disable-statsysbfd
++        --enable-custreloc
++
++    Aurelien Chanudet <aurelien.chanudet(at)m4x.org>
++*/
++
++/* For those who are using ACL2, please remember to enlarge your shell stack (ulimit -s 8192).  */
++
++#include "bsd.h"
++
++#define DARWIN
++
++/* Mac OS X has its own executable file format (Mach-O).  */
++#undef HAVE_AOUT
++#undef HAVE_ELF
++
++
++/* Alternatively, we could use the global variable vm_page_size.  */
++/* #define PAGEWIDTH 12 */
++
++
++#include <unistd.h> /* to get sbrk defined */
++
++
++/** (si::save-system "...") a.k.a. unexec implementation  */
++
++/* The implementation of unexec for GCL is based on Andrew Choi's work for Emacs.
++   Previous pioneering implementation of unexec for Mac OS X by Steve Nygard.  */
++#define UNIXSAVE "unexmacosx.c"
++
++#undef malloc
++#define malloc my_malloc
++
++#undef free
++#define free my_free
++
++#undef realloc
++#define realloc my_realloc
++
++#undef valloc
++#define valloc my_valloc
++
++#undef calloc
++#define calloc my_calloc
++
++
++/** Dynamic loading implementation  */
++
++/* The sfasl{bfd,macosx,macho}.c files are included from sfasl.c.  */
++#ifdef HAVE_LIBBFD
++#define SEPARATE_SFASL_FILE "sfaslbfd.c"
++#else
++#define SPECIAL_RSYM "rsym_macosx.c"
++#define SEPARATE_SFASL_FILE "sfaslmacho.c"
++#endif
++
++/* The file has non Mach-O stuff appended.  We need to know where the Mach-O stuff ends.  */
++#include <stdio.h>
++extern int seek_to_end_ofile (FILE *);
++#define SEEK_TO_END_OFILE(fp) seek_to_end_ofile(fp)
++
++/** Stratified garbage collection implementation [ (si::sgc-on t) ]  */
++
++/* Mac OS X has sigaction (this is needed in o/usig.c)  */
++#define HAVE_SIGACTION
++
++/* Copied from {Net,Free,Open}BSD.h  */
++/* Modified according to Camm's instructions on April 15, 2004.  */
++#define HAVE_SIGPROCMASK
++
++/* until the sgc/save problem can be fixed.  20050114 CM*/
++/* #define SGC */
++
++#define MPROTECT_ACTION_FLAGS (SA_SIGINFO | SA_RESTART)
++
++#define INSTALL_MPROTECT_HANDLER                        \
++do {                                                    \
++  static struct sigaction sact;                         \
++  sigfillset (&(sact.sa_mask));                         \
++  sact.sa_flags = MPROTECT_ACTION_FLAGS;                \
++  sact.sa_sigaction = (void (*) ()) memprotect_handler; \
++  sigaction (SIGBUS, &sact, 0);                         \
++  sigaction (SIGSEGV, &sact, 0);                        \
++} while (0);
++
++#define GET_FAULT_ADDR(sig,code,sv,a) ((siginfo_t *)code)->si_addr
++
++
++/** Misc stuff  */
++
++#define IEEEFLOAT
++
++/* Mac OS X does not have _fileno as in linux.h. Nor does it have _cnt as in bsd.h.
++   Let's see what we can do with this declaration found in {Net,Free,Open}BSD.h.  */
++#undef LISTEN_FOR_INPUT
++#define LISTEN_FOR_INPUT(fp)                                            \
++do {int c=0;                                                            \
++  if (((FILE *)fp)->_r <=0 && (c=0, ioctl(((FILE *)fp)->_file, FIONREAD, &c), c<=0)) \
++        return(FALSE);                                                  \
++} while (0)
++
++#define GET_FULL_PATH_SELF(a_)                              \
++do {                                                        \
++uint32_t bufsize = 1024;                               \
++static char buf [1024];                                     \
++static char fub [1024];                                     \
++if (_NSGetExecutablePath (buf, &bufsize) != 0) {            \
++    error ("_NSGetExecutablePath failed");                  \
++}                                                           \
++if (realpath (buf, fub) == 0) {                             \
++    error ("realpath failed");                              \
++}                                                           \
++(a_) = fub;                                                 \
++} while (0)
++
++#define C_GC_OFFSET 4
++#include <mach-o/arm64/reloc.h>
++#define RELOC_H "mach64_aarch64_reloc.h"
++
++#define FPE_TCODE(x_) \
++  ({ufixnum _x=(x_),_y=0;                     \
++   switch(_x) {                                       \
++   case FPE_FLTINV: _y=FE_INVALID;break;      \
++   case FPE_FLTDIV: _y=FE_DIVBYZERO;break;    \
++   case FPE_FLTOVF: _y=FE_OVERFLOW;break;     \
++   case FPE_FLTUND: _y=FE_UNDERFLOW;break;    \
++   case FPE_FLTRES: _y=FE_INEXACT;break;      \
++   }                                          \
++   _y;                                                \
++  })
++#define SF(a_) ((siginfo_t *)a_)
++#define FPE_CODE(i_,v_) make_fixnum(FPE_TCODE((fixnum)SF(i_)->si_code))
++#define FPE_ADDR(i_,v_) make_fixnum((fixnum)SF(i_)->si_addr)
++#define FPE_CTXT(v_) Cnil
++
++#define FPE_INIT Cnil
++
++#include <sys/param.h>/*PATH_MAX MAXPATHLEN*/
++#undef MIN
++#undef MAX
++
++#undef sbrk
++#define sbrk msbrk
++#define INITIALIZE_BRK msbrk_init();
++
++#include <libkern/OSCacheControl.h>
++#define CLEAR_CACHE sys_icache_invalidate(memory->cfd.cfd_start,memory->cfd.cfd_size)
++
++#define W_X
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- gcl27-2.7.1.orig/h/arm-linux.h
++++ gcl27-2.7.1/h/arm-linux.h
+@@ -8,3 +8,5 @@
+ #define NEED_STACK_CHK_GUARD
+ #define OUTPUT_MACH bfd_mach_arm_9
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- gcl27-2.7.1.orig/h/armhf-linux.h
++++ gcl27-2.7.1/h/armhf-linux.h
+@@ -8,3 +8,5 @@
+ #define NEED_STACK_CHK_GUARD
+ #define OUTPUT_MACH bfd_mach_arm_9
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- /dev/null
++++ gcl27-2.7.1/h/disable_mac_aslr.h
+@@ -0,0 +1,29 @@
++#include <stdio.h>
++#include <stdlib.h>
++#include <spawn.h>
++#include <sys/wait.h>
++#include <mach-o/dyld.h>
++
++#ifndef POSIX_SPAWN_DISABLE_ASLR
++#define POSIX_SPAWN_DISABLE_ASLR 0x0100
++#endif
++
++void
++disable_aslr(int argc, char **argv, char **envp) {
++
++  pid_t pid;
++  posix_spawnattr_t attr;
++
++  if (!_dyld_get_image_vmaddr_slide(0)) {
++    return;
++  }
++
++  posix_spawnattr_init(&attr);
++  posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETEXEC | POSIX_SPAWN_DISABLE_ASLR);
++  if (posix_spawn(&pid, argv[0], NULL, &attr, argv, envp)) {
++    perror("posix_spawn to disable ASLR failed");
++    gcl_abort();
++  }
++  posix_spawnattr_destroy(&attr);
++
++}
+--- gcl27-2.7.1.orig/h/gclincl.h.in
++++ gcl27-2.7.1/h/gclincl.h.in
+@@ -222,6 +222,9 @@
+ /* size of immediate fixnum address space */
+ #undef IM_FIX_LIM
++/* heap size for raw images */
++#undef INITIAL_HEAP_VMSIZE
++
+ /* symbol name mangling convention */
+ #undef LEADING_UNDERSCORE
+@@ -297,6 +300,12 @@
+ /* rl_readline_name returns type const char */
+ #undef RL_READLINE_NAME_TYPE_CONST_CHAR
++/* address span for saved images */
++#undef SAVED_IMAGE_SPAN
++
++/* address span for saved pre images */
++#undef SAVED_PRE_IMAGE_SPAN
++
+ /* The size of 'char', as computed by sizeof. */
+ #undef SIZEOF_CHAR
+--- gcl27-2.7.1.orig/h/lu.h
++++ gcl27-2.7.1/h/lu.h
+@@ -504,7 +504,7 @@ struct function {
+ struct cfdata {
+   FRSTWRD(tt,
+-        cfw:LM(18),
++        cfd_nexp:LM(18),
+         cfd_prof:1       /* profiling */
+         );
+--- /dev/null
++++ gcl27-2.7.1/h/mach64_aarch64_reloc.h
+@@ -0,0 +1,57 @@
++#include <mach-o/arm64/reloc.h>
++
++#define GOT_RELOC(ri)                                                 \
++  ri->r_type==ARM64_RELOC_GOT_LOAD_PAGE21||                           \
++    ri->r_type==ARM64_RELOC_GOT_LOAD_PAGEOFF12||                      \
++    ri->r_type==ARM64_RELOC_BRANCH26
++#define GOT_RELOC_EXTRA(ri) ri->r_type==ARM64_RELOC_BRANCH26 ? 2*sizeof(int)/sizeof(ul) : 0
++
++  case ARM64_RELOC_ADDEND:
++    addend=a;
++    break;
++  case ARM64_RELOC_BRANCH26:
++    addend=0;
++    if (labs(((long)(ri->r_pcrel ? a-(ul)q : a))/4)&(~MASK(25))) {
++      int tramp[]={0x58ffffd0, /*ldr 19bit pc relative x16*/
++                 0xd61f0200};/*br x16*/
++      got+=n1[ri->r_symbolnum].n_desc-1;
++      *got++=a;
++      memcpy(got,tramp,sizeof(tramp));
++      a=(ul)got;
++    }
++    add_vals(q,MASK(26),((long)(ri->r_pcrel ? a-(ul)q : a))/4);
++    break;
++  case ARM64_RELOC_GOT_LOAD_PAGE21:
++    got+=n1[ri->r_symbolnum].n_desc-1;
++    *got=a;
++    a=(ul)got;
++  case ARM64_RELOC_PAGE21:
++    a+=addend;
++    addend=0;
++#define PG(x) ((x) & ~0xfff)
++    a=((long)(PG(a)-PG((ul)q))) / 0x1000;
++#undef PG
++    store_val(q,MASK(2) << 29, (a & 0x3) << 29);
++    store_val(q,MASK(19) << 5, (a & 0x1ffffc) << 3);
++    break;
++  case ARM64_RELOC_GOT_LOAD_PAGEOFF12:
++    got+=n1[ri->r_symbolnum].n_desc-1;
++    *got=a;
++    a=(ul)got;
++  case ARM64_RELOC_PAGEOFF12:
++    a+=addend;
++    addend=0;
++    a&=0xfff;
++    a>>=(((*q)>>29)&0x1)*                              /*not add/sub*/
++          ((((*q)>>26)&0x1) ?                          /*simd*/
++         ((((*q)>>22)&0x3) ?
++          (((*q)>>22)&0x3)+1 : (((*q)>>30)&0x1)) :
++         (((*q)>>30)&0x3));                          /*gp*/
++    store_val(q,MASK(12) << 10, a << 10);
++    break;
++  case ARM64_RELOC_UNSIGNED:
++    addend=0;
++    if (ri->r_extern || !ri->r_pcrel) {
++      add_valu(q,~0UL,ri->r_pcrel ? a-rel : a);
++    }
++    break;
+--- gcl27-2.7.1.orig/h/riscv64-linux.h
++++ gcl27-2.7.1/h/riscv64-linux.h
+@@ -11,3 +11,5 @@
+ #define NEED_STACK_CHK_GUARD
+ #define OUTPUT_MACH bfd_mach_riscv64
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- gcl27-2.7.1.orig/info/control.texi
++++ gcl27-2.7.1/info/control.texi
+@@ -260,7 +260,7 @@ Some of the substitutions are only valid
+ certain types of events;  if they are used for other types of events
+ the value substituted is undefined.
+-@table @asis{}
++@table @asis
+ @item @b{%%}
+ Replaced with a single percent.
+ @item @b{|%#|}
+@@ -515,7 +515,7 @@ tk-dialog \- Create modal dialog and wai
+ This procedure is part of the Tk script library.
+ Its arguments describe a dialog box:
+-@table @asis{}
++@table @asis
+ @item @i{window}
+ Name of top-level window to use for dialog.  Any existing window
+ by this name is destroyed.
+@@ -602,7 +602,7 @@ the focus.
+ The @b{focus} command can take any of the following forms:
+-@table @asis{}
++@table @asis
+ @item @b{focus}
+ If invoked with no arguments, @b{focus} returns the path name of
+ the current focus window, or @b{none} if there is no focus window.
+@@ -750,7 +750,7 @@ grab on a given display at once.
+ The @b{grab} command can take any of the following forms:
+-@table @asis{}
++@table @asis
+ @item @b{grab }@r{?}@b{:global}@r{? }@i{window}
+ Same as @b{grab :set}, described below.
+ @item @b{grab :current }@r{?}@i{window}?
+@@ -926,7 +926,7 @@ At any given time, the only menus availa
+ are those associated with the top-level window containing the
+ input focus.
+ Menu traversal is initiated by one of the following actions:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ If <F10> is typed, then the first menu button in the list for the
+@@ -950,7 +950,7 @@ its first entry.
+ Once a menu has been posted, the input focus is switched to that
+ menu and the following actions are possible:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ Typing <ESC> or clicking mouse button 1 outside the menu button or
+@@ -1039,7 +1039,7 @@ options;  @i{priority}@r{ defaults to }@
+ The @i{priority}@r{ arguments to the }@b{option} command are
+ normally specified symbolically using one of the following values:
+-@table @asis{}
++@table @asis
+ @item @b{widgetDefault}
+ Level 20.  Used for default values hard-coded into widgets.
+ @item @b{startupFile}
+@@ -1097,7 +1097,7 @@ the widget @b{.a.b.c}.  Command-line swi
+ as long as the abbreviation is unambiguous.
+-@table @asis{}
++@table @asis
+ @item @code{@b{:activebackground}}
+ @flushright
+ Name=@code{"@b{activeBackground}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -1111,7 +1111,7 @@ will cause some action to occur.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:activeborderwidth}}
+ @flushright
+ Name=@code{"@b{activeBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"}
+@@ -1127,7 +1127,7 @@ than one element at a time (e.g. menus b
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:activeforeground}}
+ @flushright
+ Name=@code{"@b{activeForeground}@r{"} Class=@code{"}@b{Background}"}
+@@ -1139,7 +1139,7 @@ See above for definition of active eleme
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:anchor}}
+ @flushright
+ Name=@code{"@b{anchor}@r{"} Class=@code{"}@b{Anchor}"}
+@@ -1155,7 +1155,7 @@ top-left corner is at the top-left corne
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:background or :bg}}
+ @flushright
+ Name=@code{"@b{background}@r{"} Class=@code{"}@b{Background}"}
+@@ -1167,7 +1167,7 @@ widget.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:bitmap}}
+ @flushright
+ Name=@code{"@b{bitmap}@r{"} Class=@code{"}@b{Bitmap}"}
+@@ -1185,7 +1185,7 @@ a text display.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:borderwidth or :bd}}
+ @flushright
+ Name=@code{"@b{borderWidth}@r{"} Class=@code{"}@b{BorderWidth}"}
+@@ -1201,7 +1201,7 @@ The value may have any of the forms acce
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursor}}
+ @flushright
+ Name=@code{"@b{cursor}@r{"} Class=@code{"}@b{Cursor}"}
+@@ -1213,7 +1213,7 @@ The value may have any of the forms acce
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursorbackground}}
+ @flushright
+ Name=@code{"@b{cursorBackground}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -1229,7 +1229,7 @@ the @b{insertBackground}@r{ option.}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursorborderwidth}}
+ @flushright
+ Name=@code{"@b{cursorBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"}
+@@ -1244,7 +1244,7 @@ the @b{insertBorderWidth}@r{ option.}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursorofftime}}
+ @flushright
+ Name=@code{"@b{cursorOffTime}@r{"} Class=@code{"}@b{OffTime}"}
+@@ -1260,7 +1260,7 @@ the @b{insertOffTime}@r{ option.}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursorontime}}
+ @flushright
+ Name=@code{"@b{cursorOnTime}@r{"} Class=@code{"}@b{OnTime}"}
+@@ -1274,7 +1274,7 @@ the @b{insertOnTime}@r{ option.}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:cursorwidth}}
+ @flushright
+ Name=@code{"@b{cursorWidth}@r{"} Class=@code{"}@b{CursorWidth}"}
+@@ -1292,7 +1292,7 @@ the @b{insertWidth}@r{ option.}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:disabledforeground}}
+ @flushright
+ Name=@code{"@b{disabledForeground}@r{"} Class=@code{"}@b{DisabledForeground}"}
+@@ -1307,7 +1307,7 @@ with a stippled fill pattern.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:exportselection}}
+ @flushright
+ Name=@code{"@b{exportSelection}@r{"} Class=@code{"}@b{ExportSelection}"}
+@@ -1326,7 +1326,7 @@ to export selections.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:font}}
+ @flushright
+ Name=@code{"@b{font}@r{"} Class=@code{"}@b{Font}"}
+@@ -1337,7 +1337,7 @@ Specifies the font to use when drawing t
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:foreground or :fg}}
+ @flushright
+ Name=@code{"@b{foreground}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -1348,7 +1348,7 @@ Specifies the normal foreground color to
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:geometry}}
+ @flushright
+ Name=@code{"@b{geometry}@r{"} Class=@code{"}@b{Geometry}"}
+@@ -1365,7 +1365,7 @@ widgets the units are usually pixels.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:insertbackground}}
+ @flushright
+ Name=@code{"@b{insertBackground}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -1379,7 +1379,7 @@ cursor happens to fall in the selection)
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:insertborderwidth}}
+ @flushright
+ Name=@code{"@b{insertBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"}
+@@ -1392,7 +1392,7 @@ The value may have any of the forms acce
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:insertofftime}}
+ @flushright
+ Name=@code{"@b{insertOffTime}@r{"} Class=@code{"}@b{OffTime}"}
+@@ -1406,7 +1406,7 @@ all the time.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:insertontime}}
+ @flushright
+ Name=@code{"@b{insertOnTime}@r{"} Class=@code{"}@b{OnTime}"}
+@@ -1418,7 +1418,7 @@ milliseconds the insertion cursor should
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:insertwidth}}
+ @flushright
+ Name=@code{"@b{insertWidth}@r{"} Class=@code{"}@b{InsertWidth}"}
+@@ -1434,7 +1434,7 @@ option.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:orient}}
+ @flushright
+ Name=@code{"@b{orient}@r{"} Class=@code{"}@b{Orient}"}
+@@ -1448,7 +1448,7 @@ or @b{vertical} or an abbreviation of on
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:padx}}
+ @flushright
+ Name=@code{"@b{padX}@r{"} Class=@code{"}@b{Pad}"}
+@@ -1466,7 +1466,7 @@ internal space to the left and/or right
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:pady}}
+ @flushright
+ Name=@code{"@b{padY}@r{"} Class=@code{"}@b{Pad}"}
+@@ -1484,7 +1484,7 @@ internal space above and/or below what i
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:relief}}
+ @flushright
+ Name=@code{"@b{relief}@r{"} Class=@code{"}@b{Relief}"}
+@@ -1502,7 +1502,7 @@ the exterior of the widget.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:repeatdelay}}
+ @flushright
+ Name=@code{"@b{repeatDelay}@r{"} Class=@code{"}@b{RepeatDelay}"}
+@@ -1515,7 +1515,7 @@ up- and down-arrows in scrollbars.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:repeatinterval}}
+ @flushright
+ Name=@code{"@b{repeatInterval}@r{"} Class=@code{"}@b{RepeatInterval}"}
+@@ -1528,7 +1528,7 @@ auto-repeats.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:scrollcommand}}
+ @flushright
+ Name=@code{"@b{scrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"}
+@@ -1563,7 +1563,7 @@ options.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selectbackground}}
+ @flushright
+ Name=@code{"@b{selectBackground}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -1575,7 +1575,7 @@ items.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selectborderwidth}}
+ @flushright
+ Name=@code{"@b{selectBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"}
+@@ -1588,7 +1588,7 @@ The value may have any of the forms acce
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selectforeground}}
+ @flushright
+ Name=@code{"@b{selectForeground}@r{"} Class=@code{"}@b{Background}"}
+@@ -1600,7 +1600,7 @@ items.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:setgrid}}
+ @flushright
+ Name=@code{"@b{setGrid}@r{"} Class=@code{"}@b{SetGrid}"}
+@@ -1623,7 +1623,7 @@ entry for more details.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:text}}
+ @flushright
+ Name=@code{"@b{text}@r{"} Class=@code{"}@b{Text}"}
+@@ -1636,7 +1636,7 @@ determined by other options, such as @b{
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:textvariable}}
+ @flushright
+ Name=@code{"@b{textVariable}@r{"} Class=@code{"}@b{Variable}"}
+@@ -1652,7 +1652,7 @@ particular widget and may be determined
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:underline}}
+ @flushright
+ Name=@code{"@b{underline}@r{"} Class=@code{"}@b{Underline}"}
+@@ -1667,7 +1667,7 @@ on.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:xscrollcommand}}
+ @flushright
+ Name=@code{"@b{xScrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"}
+@@ -1684,7 +1684,7 @@ on how this option is used.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:yscrollcommand}}
+ @flushright
+ Name=@code{"@b{yScrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"}
+@@ -1768,7 +1768,7 @@ The first step in placing a child is to
+ the cavity it will lie against.  Any one of the following options
+ may be used to specify a side:
+-@table @asis{}
++@table @asis
+ @item @b{top}
+ Position the child's parcel against the top of the cavity,
+ occupying the full width of the cavity.
+@@ -1796,7 +1796,7 @@ desired width is the window's requested
+ space may be requested for the window using any of the following
+ options:
+-@table @asis{}
++@table @asis
+ @item @b{padx }@i{num}
+ Add @i{num} pixels to the window's requested width before computing
+ the parcel size as described above.
+@@ -1825,7 +1825,7 @@ is smaller.  If the parcel is larger tha
+ size, then the following options may be used to expand the
+ window to partially or completely fill the parcel:
+-@table @asis{}
++@table @asis
+ @item @b{fill}
+ Set the window's size to equal the parcel size.
+ @item @b{fillx}
+@@ -1912,7 +1912,7 @@ packing them in order around the edges o
+ The @b{pack} command can have any of several forms, depending
+ on the @i{option} argument:
+-@table @asis{}
++@table @asis
+ @item @b{pack }@i{slave }@r{?}@i{slave ...}@r{? ?}@i{options}?
+ If the first argument to @b{pack} is a window name (any value
+ starting with ``.''), then the command is processed in the same
+@@ -1947,7 +1947,7 @@ Defaults to 0.
+ If a slave's parcel is larger than its requested dimensions, this
+ option may be used to stretch the slave.
+ @i{Style} must have one of the following values:
+-@table @asis{}
++@table @asis
+ @item @b{none}
+ Give the slave its requested dimensions plus any internal padding
+ requested with @b{:ipadx}@r{ or }@b{:ipady}.  This is the default.
+@@ -1998,7 +1998,7 @@ then any unspecified options for them re
+ than receiving default values.
+ .RE
+-@table @asis{}
++@table @asis
+ @item @b{pack :forget }@i{slave }@r{?}@i{slave ...}?
+ Removes each of the @i{slave}s from the packing order for its
+ master and unmaps their windows.
+@@ -2046,7 +2046,7 @@ This area is called the @i{cavity};  for
+ is the entire area of the master.
+ For each slave the packer carries out the following steps:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ The packer allocates a rectangular @i{parcel} for the slave
+@@ -2185,7 +2185,7 @@ If the placer is already managing @i{win
+ In this form the @b{place} command returns an empty string as result.
+ The following @i{option:value} pairs are supported:
+-@table @asis{}
++@table @asis
+ @item @b{:in }@i{master}
+ @i{Master} specifes the path name of the window relative
+ to which @i{window} is to be placed.
+@@ -2395,7 +2395,7 @@ The first argument to @b{selection} dete
+ rest of the arguments and the behavior of the command.  The following
+ forms are currently supported:
+-@table @asis{}
++@table @asis
+ @item @b{selection :clear }@i{window}
+ If there is a selection anywhere on @i{window}'s display, clear it
+ so that no window owns the selection anymore.  Returns an empty string.
+@@ -2544,7 +2544,7 @@ particular window.
+ The command can take any of a number of different forms
+ depending on the @i{option} argument.  The legal forms are:
+-@table @asis{}
++@table @asis
+ @item @b{tk :colormodel }@i{window}@r{ ?}@i{newValue}?
+ If @i{newValue} isn't specified, this command returns the current
+ color model in use for @i{window}'s screen, which will be either
+@@ -2631,7 +2631,7 @@ tkvars \- Variables used or set by Tk
+ The following Tcl variables are either set or used by Tk at various times
+ in its execution:
+-@table @asis{}
++@table @asis
+ @item @b{tk_library}
+ Tk sets this variable hold the name of a directory containing a library
+ of Tcl scripts related to Tk.  These scripts include an initialization
+@@ -2763,7 +2763,7 @@ The @b{winfo} command is used to retriev
+ managed by Tk.  It can take any of a number of different forms,
+ depending on the @i{option} argument.  The legal forms are:
+-@table @asis{}
++@table @asis
+ @item @b{winfo :atom }@i{name}
+ Returns a decimal string giving the integer identifier for the
+ atom whose name is @i{name}.  If no atom exists with the name
+@@ -2964,7 +2964,7 @@ top-level window.
+ The legal forms for the @b{wm} command are:
+-@table @asis{}
++@table @asis
+ @item @b{wm :aspect }@i{window}@r{ ?}@i{minNumer minDenom maxNumer maxDenom}?
+ If @i{minNumer}@r{, }@i{minDenom}@r{, }@i{maxNumer}@r{, and }@i{maxDenom}
+ are all specified, then they will be passed to the window manager
+@@ -3251,7 +3251,7 @@ a handler, then Tk handles the message b
+ which it was received.
+ .RE
+-@table @asis{}
++@table @asis
+ @item @b{wm :sizefrom }@i{window}@r{ ?}@i{who}?
+ If @i{who}@r{ is specified, it must be either }@b{program} or
+ @b{user}, or an abbreviation of one of these two.  It indicates
+--- gcl27-2.7.1.orig/info/widgets.texi
++++ gcl27-2.7.1/info/widgets.texi
+@@ -63,7 +63,7 @@ background        disabledForeground  pa
+ @unnumberedsubsec Arguments for Button
+-@table  @asis{}
++@table @asis
+ @item @code{@b{:command}}
+ @flushright
+ Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"}
+@@ -76,7 +76,7 @@ window.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -92,7 +92,7 @@ from the size of the bitmap or text bein
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -111,7 +111,7 @@ button presses.  In this state the @b{di
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -166,7 +166,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for button widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:activate}
+ Change the button's state to @b{active} and redisplay the button
+ using its active foreground and background colors instead of normal
+@@ -210,7 +210,7 @@ This command is ignored if the button's
+ Tk automatically creates class bindings for buttons that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ The button activates whenever the mouse passes over it and deactivates
+@@ -306,7 +306,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for listbox widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -350,7 +350,7 @@ the index of the (visible) listbox eleme
+ @item @i{pathName }@b{:scan}@r{ }@i{option args}
+ This command is used to implement scanning on listboxes.  It has
+ two forms, depending on @i{option}:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:scan :mark }@i{x y}
+ Records @i{x}@r{ and }@i{y} and the current view in the listbox
+ window;  used in conjunction with later @b{scan dragto} commands.
+@@ -370,7 +370,7 @@ value is an empty string.
+ This command is used to adjust the selection within a listbox.  It
+ has several forms, depending on @i{option}.  In all of the forms
+ the index @b{end} refers to the last element in the listbox.
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:select :adjust }@i{index}
+ Locate the end of the selection nearest to the element given by
+ @i{index}@r{, and adjust that end of the selection to be at }@i{index}
+@@ -414,7 +414,7 @@ element of the listbox.  Returns an empt
+ Tk automatically creates class bindings for listboxes that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ When button 1 is pressed over a listbox, the element underneath the
+@@ -459,7 +459,7 @@ background           cursor          for
+ @unnumberedsubsec Arguments for Scale
+-@table @asis{}
++@table @asis
+ @item @code{@b{:command}}
+ @flushright
+ Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"}
+@@ -474,7 +474,7 @@ scale.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:from}}
+ @flushright
+ Name=@code{"@b{from}@r{"} Class=@code{"}@b{From}"}
+@@ -486,7 +486,7 @@ scale.  Must be an integer.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:label}}
+ @flushright
+ Name=@code{"@b{label}@r{"} Class=@code{"}@b{Label}"}
+@@ -500,7 +500,7 @@ just above the left end of the scale.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:length}}
+ @flushright
+ Name=@code{"@b{length}@r{"} Class=@code{"}@b{Length}"}
+@@ -514,7 +514,7 @@ it is the scale's width.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:showvalue}}
+ @flushright
+ Name=@code{"@b{showValue}@r{"} Class=@code{"}@b{ShowValue}"}
+@@ -526,7 +526,7 @@ value of the scale is to be displayed.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:sliderforeground}}
+ @flushright
+ Name=@code{"@b{sliderForeground}@r{"} Class=@code{"}@b{sliderForeground}"}
+@@ -539,7 +539,7 @@ determined by the @b{activeForeground} o
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:sliderlength}}
+ @flushright
+ Name=@code{"@b{sliderLength}@r{"} Class=@code{"}@b{SliderLength}"}
+@@ -552,7 +552,7 @@ to @b{Tk_GetPixels}.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -565,7 +565,7 @@ won't activate when the mouse enters it.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:tickinterval}}
+ @flushright
+ Name=@code{"@b{tickInterval}@r{"} Class=@code{"}@b{TickInterval}"}
+@@ -578,7 +578,7 @@ as 0, then no tick-marks will be display
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:to}}
+ @flushright
+ Name=@code{"@b{to}@r{"} Class=@code{"}@b{To}"}
+@@ -591,7 +591,7 @@ greater than the @b{from} option.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -652,7 +652,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for scale widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -679,7 +679,7 @@ gives the new value for the scale.
+ When a new scale is created, it is given the following initial
+ behavior by default:
+-@table @asis{}
++@table @asis
+ @item @b{<Enter>}
+ Change the slider display to use @b{activeForeground} instead of
+ @b{sliderForeground}.
+@@ -721,7 +721,7 @@ insertBackground insertWidth       selec
+ @unnumberedsubsec Arguments for Canvas
+-@table @asis{}
++@table @asis
+ @item @code{@b{:closeenough}}
+ @flushright
+ Name=@code{"@b{closeEnough}@r{"} Class=@code{"}@b{CloseEnough}"}
+@@ -734,7 +734,7 @@ Defaults to 1.0.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:confine}}
+ @flushright
+ Name=@code{"@b{confine}@r{"} Class=@code{"}@b{Confine}"}
+@@ -749,7 +749,7 @@ be constrained within the scroll region.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -762,7 +762,7 @@ of the forms described in the COORDINATE
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:scrollincrement}}
+ @flushright
+ Name=@code{"@b{scrollIncrement}@r{"} Class=@code{"}@b{ScrollIncrement}"}
+@@ -776,7 +776,7 @@ of the forms described in the COORDINATE
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:scrollregion}}
+ @flushright
+ Name=@code{"@b{scrollRegion}@r{"} Class=@code{"}@b{ScrollRegion}"}
+@@ -792,7 +792,7 @@ in any of the forms given in the COORDIN
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{width}"}
+@@ -932,7 +932,7 @@ Note that it is possible to refer to the
+ the last one in the text item;  this is necessary for such
+ tasks as inserting new text at the end of the item.
+-@table @asis{}
++@table @asis
+ @item @i{number}
+ A decimal number giving the position of the desired character
+ within the text item.
+@@ -977,7 +977,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.
+ The following widget commands are possible for canvas widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:addtag }@i{tag searchSpec }@r{?}@i{arg arg ...}?
+ For each item that meets the constraints specified by
+ @i{searchSpec}@r{ and the }@i{arg}s, add
+@@ -990,7 +990,7 @@ This command returns an empty string as
+ @i{SearchSpec}@r{ and }@i{arg}'s may take any of the following
+ forms:
+-@table @asis{}
++@table @asis
+ @item @b{above }@i{tagOrId}
+ Selects the item just after (above) the one given by @i{tagOrId}
+ in the display list.
+@@ -1097,7 +1097,7 @@ If a binding is associated with the tag
+ will have lower priority than all other bindings associated
+ with the item.
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:canvasx }@i{screenx}@r{ ?}@i{gridspacing}?
+ Given a screen x-coordinate @i{screenx} this command returns
+ the canvas x-coordinate that is displayed at that location.
+@@ -1194,7 +1194,7 @@ In most cases it is advisable to follow
+ command with the @b{focus} command to set the focus window to
+ the canvas (if it wasn't there already).
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:gettags}@r{ }@i{tagOrId}
+ Return a list whose elements are the tags associated with the
+ item given by @i{tagOrId}.
+@@ -1278,7 +1278,7 @@ The @i{option}\-@i{value} argument pairs
+ information to control the generation of Postscript.  The following
+ options are supported:
+-@table @asis{}
++@table @asis
+ @item @b{:colormap }@i{varName}
+ @i{VarName} must be the name of a global array variable
+ that specifies a color mapping to use in the Postscript.
+@@ -1407,7 +1407,7 @@ This command returns an empty string.
+ This command is used to implement scanning on canvases.  It has
+ two forms, depending on @i{option}:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:scan :mark }@i{x y}
+ Records @i{x}@r{ and }@i{y} and the canvas's current view;  used
+ in conjunction with later @b{scan dragto} commands.
+@@ -1436,7 +1436,7 @@ these that supports indexing and the sel
+ @i{Index} gives a textual description of a position
+ within @i{tagOrId}, as described in INDICES above.
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:select :adjust }@i{tagOrId index}
+ Locate the end of the selection in @i{tagOrId} nearest
+ to the character given by @i{index}, and adjust that
+@@ -1532,7 +1532,7 @@ by the @b{:start}@r{ and }@b{:extent} op
+ one of several ways (specified by the @b{:style} option).
+ Arcs are created with widget commands of the following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create arc }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}?
+ The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give
+ the coordinates of two diagonally opposite corners of a
+@@ -1544,7 +1544,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for arcs:
+-@table @asis{}
++@table @asis
+ @item @b{:extent }@i{degrees}
+ Specifies the size of the angular range occupied by the arc.
+ The arc's range extends for @i{degrees} degrees counter-clockwise
+@@ -1608,7 +1608,7 @@ Items of type @b{bitmap} appear on the d
+ two colors, foreground and background.
+ Bitmaps are created with widget commands of the following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create bitmap }@i{x y }@r{?}@i{option value option value ...}?
+ The arguments @i{x}@r{ and }@i{y} specify the coordinates of a
+ point used to position the bitmap on the display (see the @b{:anchor}
+@@ -1620,7 +1620,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for bitmaps:
+-@table @asis{}
++@table @asis
+ @item @b{:anchor }@i{anchorPos}
+ @i{AnchorPos} tells how to position the bitmap relative to the
+ positioning point for the item;  it may have any of the forms
+@@ -1656,7 +1656,7 @@ Items of type @b{line} appear on the dis
+ line segments or curves.
+ Lines are created with widget commands of the following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create line }@i{x1 y1... xn yn }@r{?}@i{option value option value ...}?
+ The arguments @i{x1}@r{ through }@i{yn} give
+@@ -1669,7 +1669,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for lines:
+-@table @asis{}
++@table @asis
+ @item @b{:arrow }@i{where}
+ Indicates whether or not arrowheads are to be drawn at one or both
+ ends of the line.
+@@ -1747,7 +1747,7 @@ the display.  Each oval may have an outl
+ both.  Ovals are created with widget commands of the
+ following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create oval }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}?
+ The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give
+@@ -1764,7 +1764,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for ovals:
+-@table @asis{}
++@table @asis
+ @item @b{:fill }@i{color}
+ Fill the area of the oval with @i{color}.
+ @i{Color}@r{ may have any of the forms accepted by }@b{Tk_GetColor}.
+@@ -1805,7 +1805,7 @@ Items of type @b{polygon} appear as poly
+ on the display.
+ Polygons are created with widget commands of the following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create polygon }@i{x1 y1 ... xn yn }@r{?}@i{option value option value ...}?
+@@ -1820,7 +1820,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for polygons:
+-@table @asis{}
++@table @asis
+ @item @b{:fill }@i{color}
+ @i{Color} specifies a color to use for filling the area of the
+ polygon; it may have any of the forms acceptable to @b{Tk_GetColor}.
+@@ -1860,7 +1860,7 @@ the display.  Each rectangle may have an
+ both.  Rectangles are created with widget commands of the
+ following form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create rectangle }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}?
+ The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give
+@@ -1874,7 +1874,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for rectangles:
+-@table @asis{}
++@table @asis
+ @item @b{:fill }@i{color}
+ Fill the area of the rectangle with @i{color}, which may be
+ specified in any of the forms accepted by @b{Tk_GetColor}.
+@@ -1920,7 +1920,7 @@ following text-related canvas widget com
+ Text items are created with widget commands of the following
+ form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:create text }@i{x y }@r{?}@i{option value option value ...}?
+ The arguments @i{x}@r{ and }@i{y} specify the coordinates of a
+@@ -1933,7 +1933,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for text items:
+-@table @asis{}
++@table @asis
+ @item @b{:anchor }@i{anchorPos}
+ @i{AnchorPos} tells how to position the text relative to the
+ positioning point for the text;  it may have any of the forms
+@@ -2010,7 +2010,7 @@ used in @b{itemconfigure} widget command
+ configuration.
+ The following options are supported for window items:
+-@table @asis{}
++@table @asis
+ @item @b{:anchor }@i{anchorPos}
+ @i{AnchorPos} tells how to position the window relative to the
+ positioning point for the item;  it may have any of the forms
+@@ -2089,7 +2089,7 @@ activeForeground       cursor
+ @unnumberedsubsec Arguments for Menu
+-@table @asis{}
++@table @asis
+ @item @code{@b{:postcommand}}
+ @flushright
+ Name=@code{"@b{postCommand}@r{"} Class=@code{"}@b{Command}"}
+@@ -2102,7 +2102,7 @@ widget command before posting the menu.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selector}}
+ @flushright
+ Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -2230,7 +2230,7 @@ the cascade entry, in order for menu tra
+ A cascade entry posts its associated menu by invoking a
+ Tcl command of the form
+-@table @asis{}
++@table @asis
+ @item @i{menu}@b{ :post }@i{x y}
+@@ -2257,7 +2257,7 @@ name is @i{pathName}.  This
+ command may be used to invoke various
+ operations on the widget.  It has the following general form:
+-@table @asis{}
++@table @asis
+ @item @i{pathName option }@r{?}@i{arg arg ...}?
+ @i{Option}@r{ and the }@i{arg}s
+ determine the exact behavior of the command.
+@@ -2268,7 +2268,7 @@ indicator of which entry of the menu to
+ indicators are called @i{index}es and may be specified in
+ any of the following forms:
+-@table @asis{}
++@table @asis
+ @item @i{number}
+ Specifies the entry numerically, where 0 corresponds
+ to the top-most entry of the menu, 1 to the entry below it, and
+@@ -2315,7 +2315,7 @@ is given by @i{type}@r{ and must be one
+ or a unique abbreviation of one of the above.  If additional arguments
+ are present, they specify any of the following options:
+-@table @asis{}
++@table @asis
+ @item @b{:activebackground }@i{value}
+ Specifies a background color to use for displaying this entry when it
+ is active.
+@@ -2402,7 +2402,7 @@ causes the currently-selected entry to d
+ The @b{add} widget command returns an empty string.
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -2482,7 +2482,7 @@ window of the topmost pixel in the entry
+ Tk automatically creates class bindings for menus that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ When the mouse cursor enters a menu, the entry underneath the mouse
+@@ -2537,7 +2537,7 @@ borderWidth            orient
+ @unnumberedsubsec Arguments for Scrollbar
+-@table @asis{}
++@table @asis
+ @item @code{@b{:command}}
+ @flushright
+ Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"}
+@@ -2553,7 +2553,7 @@ should appear at the top of the associat
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -2611,7 +2611,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for scrollbar widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -2659,7 +2659,7 @@ between the arrow and the slider), the s
+ and the bottom arrow.  Pressing mouse button 1 in each area has
+ a different effect:
+-@table @asis{}
++@table @asis
+ @item @b{top arrow}
+ Causes the view in the associated window to shift up by one unit
+ (i.e. the object appears to move down one unit in its window).
+@@ -2719,7 +2719,7 @@ background        disabledForeground  pa
+ @unnumberedsubsec Arguments for Checkbutton
+-@table @asis{}
++@table @asis
+ @item @code{@b{:command}}
+ @flushright
+ Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"}
+@@ -2733,7 +2733,7 @@ be updated before the command is invoked
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -2749,7 +2749,7 @@ from the size of the bitmap or text bein
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:offvalue}}
+ @flushright
+ Name=@code{"@b{offValue}@r{"} Class=@code{"}@b{Value}"}
+@@ -2761,7 +2761,7 @@ this button is deselected.  Defaults to
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:onvalue}}
+ @flushright
+ Name=@code{"@b{onValue}@r{"} Class=@code{"}@b{Value}"}
+@@ -2773,7 +2773,7 @@ this button is selected.  Defaults to ``
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selector}}
+ @flushright
+ Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -2787,7 +2787,7 @@ drawn for the button.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -2806,7 +2806,7 @@ button presses.  In this state the @b{di
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:variable}}
+ @flushright
+ Name=@code{"@b{variable}@r{"} Class=@code{"}@b{Variable}"}
+@@ -2820,7 +2820,7 @@ window's path name).
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -2892,7 +2892,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for check button widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:activate}
+ Change the check button's state to @b{active} and redisplay the button
+ using its active foreground and background colors instead of normal
+@@ -2949,7 +2949,7 @@ modifying its associated variable to ref
+ Tk automatically creates class bindings for check buttons that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ The check button activates whenever the mouse passes over it and deactivates
+@@ -2998,7 +2998,7 @@ background        disabledForeground  pa
+ @unnumberedsubsec Arguments for Menubutton
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -3014,7 +3014,7 @@ from the size of the bitmap or text bein
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:menu}}
+ @flushright
+ Name=@code{"@b{menu}@r{"} Class=@code{"}@b{MenuName}"}
+@@ -3027,7 +3027,7 @@ operation to work via the mouse.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -3046,7 +3046,7 @@ button presses.  In this state the @b{di
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -3109,7 +3109,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for menubutton widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:activate}
+ Change the menu button's state to @b{active} and redisplay the menu
+ button using its active foreground and background colors instead of normal
+@@ -3145,7 +3145,7 @@ use ``@i{pathName }@b{:configure :state
+ Tk automatically creates class bindings for menu buttons that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ A menu button activates whenever the mouse passes over it and deactivates
+@@ -3216,7 +3216,7 @@ font            insertOnTime      select
+ @unnumberedsubsec Arguments for Text
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -3228,7 +3228,7 @@ Must be at least one.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -3242,7 +3242,7 @@ in the widget.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -3256,7 +3256,7 @@ screen units.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:wrap}}
+ @flushright
+ Name=@code{"@b{wrap}@r{"} Class=@code{"}@b{Wrap}"}
+@@ -3328,7 +3328,7 @@ but the @i{modifier}s are optional.
+ The @i{base} for an index must have one of the following forms:
+-@table @asis{}
++@table @asis
+ @item @i{line}@b{.}@i{char}
+ Indicates @i{char}@r{'th character on line }@i{line}.
+ Lines are numbered from 1 for consistency with other UNIX programs
+@@ -3359,7 +3359,7 @@ If modifiers follow the base index, each
+ of the forms listed below.  Keywords such as @b{chars}@r{ and }@b{wordend}
+ may be abbreviated as long as the abbreviation is unambiguous.
+-@table @asis{}
++@table @asis
+ @item @b{+ }@i{count}@b{ chars}
+ Adjust the index forward by @i{count} characters, moving to later
+ lines in the text if necessary.  If there are fewer than @i{count}
+@@ -3443,7 +3443,7 @@ If a character has been tagged, then the
+ with the tag override the default display style.
+ The following options are currently supported for tags:
+-@table @asis{}
++@table @asis
+ @item @b{:background }@i{color}
+ @i{Color} specifies the background color to use for characters
+ associated with the tag.
+@@ -3560,7 +3560,7 @@ Text widgets support the standard X sele
+ Selection support is implemented via tags.
+ If the @b{exportSelection} option for the text widget is true
+ then the @b{sel} tag will be associated with the selection:
+-@itemize  @asis{}
++@itemize  @asis
+ @item
+ [1]
+ Whenever characters are tagged with @b{sel} the text widget
+@@ -3612,7 +3612,7 @@ the text widget's path name.  @i{Option}
+ determine the exact behavior of the command.  The following
+ commands are possible for text widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:compare}@r{ }@i{index1 op index2}
+ Compares the indices given by @i{index1}@r{ and }@i{index2} according
+ to the relational operator given by @i{op}, and returns 1 if
+@@ -3688,7 +3688,7 @@ This command is used to manipulate marks
+ the command depends on the @i{option} argument that follows
+ the @b{mark} argument.  The following forms of the command
+ are currently supported:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:mark :names}
+ Returns a list whose elements are the names of all the marks that
+ are currently set.
+@@ -3708,7 +3708,7 @@ This command returns an empty string.
+ @item @i{pathName }@b{:scan}@r{ }@i{option args}
+ This command is used to implement scanning on texts.  It has
+ two forms, depending on @i{option}:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:scan :mark }@i{y}
+ Records @i{y} and the current view in the text window;  used in
+ conjunction with later @b{scan dragto} commands.  Typically this
+@@ -3730,7 +3730,7 @@ command depends on the @i{option} argume
+ @b{tag} argument.  The following forms of the command are currently
+ supported:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:tag :add }@i{tagName index1 }@r{?}@i{index2}?
+ Associate the tag @i{tagName} with all of the characters starting
+ with @i{index1} and ending just before
+@@ -3892,7 +3892,7 @@ If the @b{:pickplace}@r{ option isn't sp
+ appear at the top of the window.
+ If @b{:pickplace} is specified then the widget chooses where
+ @i{what} appears in the window:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ If @i{what} is already visible somewhere in the window then the
+@@ -3920,7 +3920,7 @@ This command returns an empty string.
+ Tk automatically creates class bindings for texts that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ Pressing mouse button 1 in an text positions the insertion cursor
+@@ -4021,7 +4021,7 @@ font            insertOnTime      select
+ @unnumberedsubsec Arguments for Entry
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -4035,7 +4035,7 @@ in the widget.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -4098,7 +4098,7 @@ Many of the widget commands for entries
+ arguments.  An index specifies a particular character in the entry's
+ string, in any of the following ways:
+-@table @asis{}
++@table @asis
+ @item @i{number}
+ Specifies the character as a numerical index, where 0 corresponds
+ to the first character in the string.
+@@ -4129,7 +4129,7 @@ rounded to the nearest legal value.
+ The following commands are possible for entry widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -4162,7 +4162,7 @@ indicated by @i{index}.  Returns an empt
+ @item @i{pathName }@b{:scan}@r{ }@i{option args}
+ This command is used to implement scanning on entries.  It has
+ two forms, depending on @i{option}:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:scan :mark }@i{x}
+ Records @i{x} and the current view in the entry window;  used in
+ conjunction with later @b{scan dragto} commands.  Typically this
+@@ -4180,7 +4180,7 @@ value is an empty string.
+ @item @i{pathName }@b{:select }@i{option arg}
+ This command is used to adjust the selection within an entry.  It
+ has several forms, depending on @i{option}:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:select :adjust }@i{index}
+ Locate the end of the selection nearest to the character given by
+ @i{index}@r{, and adjust that end of the selection to be at }@i{index}
+@@ -4217,7 +4217,7 @@ at the left edge of the window.  Returns
+ Tk automatically creates class bindings for entries that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ Clicking mouse button 1 in an entry positions the insertion cursor
+@@ -4290,7 +4290,7 @@ borderWidth       foreground      relief
+ @unnumberedsubsec Arguments for Message
+-@table @asis{}
++@table @asis
+ @item @code{@b{:aspect}}
+ @flushright
+ Name=@code{"@b{aspect}@r{"} Class=@code{"}@b{Aspect}"}
+@@ -4309,7 +4309,7 @@ Defaults to 150.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:justify}}
+ @flushright
+ Name=@code{"@b{justify}@r{"} Class=@code{"}@b{Justify}"}
+@@ -4338,7 +4338,7 @@ in the vertical span of the window.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -4408,7 +4408,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for message widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -4456,7 +4456,7 @@ borderWidth            geometry
+ @unnumberedsubsec Arguments for Frame
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -4473,7 +4473,7 @@ all.
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -4535,7 +4535,7 @@ the frame widget's path name.  @i{Option
+ determine the exact behavior of the command.  The following
+ commands are possible for frame widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? }@i{?value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -4579,7 +4579,7 @@ bitmap           font            padY
+ @unnumberedsubsec Arguments for Label
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -4595,7 +4595,7 @@ from the size of the bitmap or text bein
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -4644,7 +4644,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for label widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+@@ -4689,7 +4689,7 @@ background        disabledForeground  pa
+ @unnumberedsubsec Arguments for Radiobutton
+-@table @asis{}
++@table @asis
+ @item @code{@b{:command}}
+ @flushright
+ Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"}
+@@ -4703,7 +4703,7 @@ be updated before the command is invoked
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:height}}
+ @flushright
+ Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"}
+@@ -4719,7 +4719,7 @@ from the size of the bitmap or text bein
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:selector}}
+ @flushright
+ Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"}
+@@ -4732,7 +4732,7 @@ If specified as an empty string then no
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:state}}
+ @flushright
+ Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"}
+@@ -4751,7 +4751,7 @@ button presses.  In this state the @b{di
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:value}}
+ @flushright
+ Name=@code{"@b{value}@r{"} Class=@code{"}@b{Value}"}
+@@ -4763,7 +4763,7 @@ this button is selected.  Defaults to th
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:variable}}
+ @flushright
+ Name=@code{"@b{variable}@r{"} Class=@code{"}@b{Variable}"}
+@@ -4777,7 +4777,7 @@ Defaults to the value @b{selectedButton}
+ @end table
+-@table @asis{}
++@table @asis
+ @item @code{@b{:width}}
+ @flushright
+ Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"}
+@@ -4853,7 +4853,7 @@ operations on the widget.  It has the fo
+ determine the exact behavior of the command.  The following
+ commands are possible for radio-button widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:activate}
+ Change the radio button's state to @b{active} and redisplay the button
+ using its active foreground and background colors instead of normal
+@@ -4908,7 +4908,7 @@ to this widget.
+ Tk automatically creates class bindings for radio buttons that give them
+ the following default behavior:
+-@itemize @asis{}
++@itemize @asis
+ @item
+ [1]
+ The radio button activates whenever the mouse passes over it and deactivates
+@@ -5008,7 +5008,7 @@ the toplevel widget's path name.  @i{Opt
+ determine the exact behavior of the command.  The following
+ commands are possible for toplevel widgets:
+-@table @asis{}
++@table @asis
+ @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}?
+ Query or modify the configuration options of the widget.
+ If no @i{option} is specified, returns a list describing all of
+--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp
++++ gcl27-2.7.1/lsp/gcl_fpe.lsp
+@@ -2,11 +2,13 @@
+ (in-package :fpe)
+ (import 'si::(disassemble-instruction feenableexcept fedisableexcept fld *fixnum *float *double
++                                    fetestexcept feclearexcept
+                                     *fixnum *ushort *uint fun-name
+                                     si-class-direct-subclasses si-class-name si-find-class
+                                     +fe-list+ +mc-context-offsets+ floating-point-error 
+                                     function-by-address clines defentry))
+ (export '(break-on-floating-point-exceptions read-instruction))
++#+no-sigfpe (export '(flush-floating-point-exceptions))
+ (eval-when
+     (eval compile)
+@@ -128,17 +130,30 @@
+   (feenableexcept a))
+-#.`(let ((fpe-enabled 0))
++#.`(let ((fpe-enabled 0)(fpe-set 0))
++     #+no-sigfpe
++     (defun flush-floating-point-exceptions nil
++       (let ((x (fetestexcept fpe-set)))
++       (unless (zerop x)
++         (feclearexcept x)
++         (floating-point-error x 0 0))))
+      (defun break-on-floating-point-exceptions 
+-       (&key suspend ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+) &aux r)
++       (&key suspend no-flush
++          ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+)
++        &aux r #+no-sigfpe(x (fetestexcept fpe-set)))
+        (fe-enable
+-      (if suspend 0
+-        (setq fpe-enabled 
+-              (logior
+-               ,@(mapcar (lambda (x)
+-                           `(cond (,(car x) (push ,(intern (symbol-name (car x)) :keyword) r) ,(caddr x))
+-                                  (0)))
+-                         +fe-list+)))))
++      (setq fpe-set
++            (if suspend 0
++                (setq fpe-enabled
++                      (logior
++                       ,@(mapcar (lambda (x)
++                                   `(cond (,(car x)
++                                           (push ,(intern (symbol-name (car x)) :keyword) r)
++                                            ,(caddr x))
++                                          (0)))
++                                 +fe-list+))))))
++       #+no-sigfpe
++       (unless (or no-flush (zerop x)) (floating-point-error x 0 0))
+        r))
+ (defun subclasses (class)
+@@ -154,13 +169,16 @@
+       'arithmetic-error))
+        
+ (defun floating-point-error (code addr context)
+-  (break-on-floating-point-exceptions :suspend t)
++  (break-on-floating-point-exceptions :suspend t :no-flush t)
+   (restart-case
+    (unwind-protect
+        (let* ((fun (function-by-address addr))(m (read-instruction addr context)))
+        ((lambda (&rest r) (apply 'error (if (find-package :conditions) r (list (format nil "~s" r)))))
+         (code-condition code)
+         :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr) :operands m :function-name (when fun (fun-name fun))))
+-     (break-on-floating-point-exceptions))
++     (break-on-floating-point-exceptions :no-flush t))
+    (continue nil :report (lambda (s) (format s "Continue disabling floating point exception trapping"))
+-           (apply 'break-on-floating-point-exceptions (mapcan (lambda (x) (list x nil)) (break-on-floating-point-exceptions))))))
++           (apply 'break-on-floating-point-exceptions
++                  :no-flush t
++                  (mapcan (lambda (x) (list x nil))
++                          (break-on-floating-point-exceptions :no-flush t))))))
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -79,31 +79,31 @@
+ (defun concatenated-stream-streams (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream concatenated-stream)
+-  (c-stream-object0 stream))
++  (the proper-list (c-stream-object0 stream)))
+ (defun broadcast-stream-streams (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream broadcast-stream)
+-  (c-stream-object0 stream))
++  (the proper-list (c-stream-object0 stream)))
+ (defun two-way-stream-input-stream (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream two-way-stream)
+-  (c-stream-object0 stream))
++  (the (and stream (satisfies input-stream-p)) (c-stream-object0 stream)))
+ (defun echo-stream-input-stream (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream echo-stream)
+-  (c-stream-object0 stream))
++  (the (and stream (satisfies input-stream-p)) (c-stream-object0 stream)))
+ (defun two-way-stream-output-stream (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream two-way-stream)
+-  (c-stream-object1 stream))
++  (the (and stream (satisfies output-stream-p)) (c-stream-object1 stream)))
+ (defun echo-stream-output-stream (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream echo-stream)
+-  (c-stream-object1 stream))
++  (the (and stream (satisfies output-stream-p)) (c-stream-object1 stream)))
+ (defun synonym-stream-symbol (stream)
+   (declare (optimize (safety 2)))
+   (check-type stream synonym-stream)
+-  (c-stream-object0 stream))
++  (the symbol (c-stream-object0 stream)))
+ (defun maybe-clear-input (&optional (x *standard-input*))
+   (typecase x
+@@ -143,7 +143,7 @@
+ (defun get-output-stream-string (strm)
+   (declare (optimize (safety 1)))
+   (check-type strm string-output-stream)
+-  (let ((x (copy-seq (c-stream-object0 strm))))
++  (let ((x (copy-seq (the string (c-stream-object0 strm)))))
+     (c-set-stream-int strm 0)
+     (setf (fill-pointer (c-stream-object0 strm)) 0)
+     x))
+@@ -531,6 +531,10 @@
+ (deftype binary-stream-element-type nil 'list)
+ (defconstant +char-shft+ (1- (integer-length char-length)))
++(declaim (inline byte-index))
++(defun byte-index (k n)
++  #+:clx-little-endian k #-:clx-little-endian (- n 1 k))
++
+ (defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s)))
+   (declare (optimize (safety 1)))
+   (check-type s stream)
+@@ -538,9 +542,11 @@
+   (let* ((n (if tp (ash (cadr tp) (- +char-shft+)) 1)))
+     (dotimes (k n (let ((nb (ash n +char-shft+)))
+                 (if (when (eq (car tp) 'signed-byte) (logbitp (1- nb) i)) (- i (ash 1 nb)) i)))
+-      (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value)))
++      (setq i
++          (logior i
++                  (ash (let ((ch (read-char s eof-error-p eof-value)))
+                              (if (eq ch eof-value) (return ch) (char-code ch)))
+-                           (ash k +char-shft+)))))))
++                       (ash (byte-index k n) +char-shft+)))))))
+ (defun write-byte (j s &aux (i j) (tp (stream-element-type s)))
+   (declare (optimize (safety 1)))
+@@ -549,23 +555,27 @@
+   (check-type tp binary-stream-element-type)
+   (let ((n (ash (cadr tp) (- +char-shft+))))
+     (dotimes (k n j)
+-      (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s)
+-      (setq i (ash i #.(- char-length))))))
++      (write-char
++       (code-char
++      (logand
++       (ash i (ash (- (byte-index k n)) +char-shft+))
++       #.(1- (ash 1 char-length))))
++       s))))
+ #-pre-gcl
+ (defdlfun (:fixnum "fread") :fixnum :fixnum :fixnum :fixnum)
+-(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil)))
+-  #+pre-gcl
+-  (declare (ignore seq tp start end fp))
+-  #-pre-gcl
+-  (when fp
+-    (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
+-      (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
+-      (when (<= start end ln)
+-        (c+ start
+-            (|libc|:|fread|
+-                   (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
++#.`(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil)))
++     #+pre-gcl
++     (declare (ignore seq tp start end fp))
++     #-pre-gcl
++     (when fp
++       (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
++       (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
++         (when (<= start end ln)
++           (c+ start
++               (,(mdlsym "fread")
++                 (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
+@@ -592,17 +602,17 @@
+ #-pre-gcl
+ (defdlfun (:fixnum "fwrite") :fixnum :fixnum :fixnum :fixnum)
+-(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t)))
+-  #+pre-gcl
+-  (declare (ignore seq tp start end fp))
+-  #-pre-gcl
+-  (when fp
+-    (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
+-      (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
+-      (when (<= start end ln)
+-        (c+ start
+-            (|libc|:|fwrite|
+-                   (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
++#.`(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t)))
++     #+pre-gcl
++     (declare (ignore seq tp start end fp))
++     #-pre-gcl
++     (when fp
++       (when (eq tp (aref +array-stream-types+ (c-array-elttype seq)))
++       (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln)))
++         (when (<= start end ln)
++           (c+ start
++               (,(mdlsym "fwrite")
++                 (c+ (c-array-self seq) (c* n start)) n (c- end start) fp)))))))
+ (defun write-sequence (seq strm &key (start 0) end
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1290,7 +1290,31 @@ gcl_init_alloc(void *cs_start) {
+   
+ #ifdef HAVE_MPROTECT
+   if (data_start)
+-    massert(!gcl_mprotect(data_start,(void *)core_end-data_start,PROT_READ|PROT_WRITE|PROT_EXEC));
++    massert(!gcl_mprotect(data_start,(void *)core_end-data_start,PROT_READ|PROT_WRITE
++#ifndef W_X
++                        |PROT_EXEC
++#endif
++                        ));
++
++#ifdef W_X
++  {
++    struct pageinfo *v;
++    struct typemanager *tm=tm_of(t_cfdata);
++
++
++    for (v=cell_list_head;v;v=v->next)
++    if (tm->tm_type==v->type) {
++      void *p;
++      ufixnum k;
++      for (p=pagetochar(page(v)),k=0;k<tm->tm_nppage;k++,p+=tm->tm_size) {
++      object o=p;
++      if (!is_free(o) && type_of(o)==t_cfdata && (void *)o->cfd.cfd_start>=data_start)
++        gcl_mprotect((void *)o->cfd.cfd_start,o->cfd.cfd_nexp<<PAGEWIDTH,PROT_READ|PROT_EXEC);
++      }
++    }
++  }
++#endif
++
+ #endif
+ #ifdef SGC
+--- gcl27-2.7.1.orig/o/cmpaux.c
++++ gcl27-2.7.1/o/cmpaux.c
+@@ -616,6 +616,7 @@ gcl_init_or_load1(void (*fn)(void),const
+     massert(realpath(file,FN1));
+     ltn=make_simple_string(FN1);
+     memory=new_cfdata();
++    memory->d.tt=1;
+     memory->cfd.cfd_name=ltn;
+     memory->cfd.cfd_start=(char *)fn;
+     faslfile=open_stream(ltn,smm_input,Cnil,sKerror);
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -1900,7 +1900,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S
+     massert(!sigaction(SIGCHLD,&sa,&osa));
+-    switch((pid=pvfork())) {
++    switch((pid=pfork())) {
+     case -1:
+       FEerror("Cannot fork", 0);
+       break;
+@@ -1909,7 +1909,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S
+       massert(setsid()>=0);
+       if (daemon == sKpersistent)
+-      switch(pvfork()) {
++      switch(pfork()) {
+       case -1:
+         FEerror("daemon fork error", 0);
+         break;
+@@ -1952,7 +1952,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S
+         
+         y=maccept(x);
+         
+-        switch((pid=pvfork())) {
++        switch((pid=pfork())) {
+         case 0:
+           massert(!sigaction(SIGCHLD,&osa,NULL));
+           ifuncall1(server,y);
+--- gcl27-2.7.1.orig/o/gbc.c
++++ gcl27-2.7.1/o/gbc.c
+@@ -31,6 +31,7 @@
+ #define NEED_MP_H
+ #include <string.h>
+ #include <stdlib.h>
++#include <sys/mman.h>
+ #include "include.h"
+ #include "page.h"
+@@ -957,6 +958,11 @@ sweep_phase(void) {
+       continue;
+       }
++#ifdef W_X
++      if (type_of(x)==t_cfdata && !x->d.tt && !is_free(x))
++      gcl_mprotect((void *)x->cfd.cfd_start,x->cfd.cfd_nexp<<PAGEWIDTH,PROT_READ|PROT_WRITE);
++#endif
++
+       k++;
+       make_free(x);
+--- gcl27-2.7.1.orig/o/gprof.c
++++ gcl27-2.7.1/o/gprof.c
+@@ -5,6 +5,14 @@
+ static unsigned long gprof_on;
++/*all but this stub to be written in the future provided*/
++#if defined(__APPLE__) && defined(__aarch64__)
++void
++_mcleanup(void) {
++  return;
++}
++#endif
++
+ DEFUN("MCLEANUP",object,fSmcleanup,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
+   extern void _mcleanup(void);
+--- gcl27-2.7.1.orig/o/hash.d
++++ gcl27-2.7.1/o/hash.d
+@@ -178,7 +178,7 @@ BEGIN:
+   if (depth++<=3)
+     switch ((tx=type_of(x))) {
+     case t_cons:
+-      h^=ihash_equal(x->c.c_car,depth)^rtb[labs(depth%(sizeof(rtb)/sizeof(*rtb)))];
++      h^=ihash_equal(x->c.c_car,depth)^rtb[labs(depth%(long)(sizeof(rtb)/sizeof(*rtb)))];
+       x = x->c.c_cdr;
+       goto BEGIN;
+       break;
+@@ -249,7 +249,7 @@ BEGIN:
+   if (depth++ <=3)
+     switch ((tx=type_of(x))) {
+     case t_cons:
+-      h += ihash_equalp(x->c.c_car,depth)^rtb[labs(depth%(sizeof(rtb)/sizeof(*rtb)))];
++      h += ihash_equalp(x->c.c_car,depth)^rtb[labs(depth%(long)(sizeof(rtb)/sizeof(*rtb)))];
+       x = x->c.c_cdr;
+       goto BEGIN;
+       break;
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -178,7 +178,65 @@ mbrk(void *v) {
+   return uc==(ufixnum)sbrk(uv-uc) ? 0 : -1;
+ }
+-    
++
++#if defined(__CYGWIN__)||defined(__MINGW32__)
++
++#include <windows.h>
++
++static ufixnum
++get_phys_pages_no_malloc(char n,char ramp) {
++
++  MEMORYSTATUS m;
++
++  m.dwLength=sizeof(m);
++  GlobalMemoryStatus(&m);
++  return m.dwTotalPhys>>PAGEWIDTH;
++
++}
++
++#elif defined (DARWIN)
++
++#include <sys/sysctl.h>
++
++static ufixnum
++get_phys_pages_no_malloc(char n,char ramp) {
++
++  uint64_t s;
++  size_t z=sizeof(s);
++  int m[2]={CTL_HW,HW_MEMSIZE};
++
++  if (sysctl(m,2,&s,&z,NULL,0)==0)
++    return s>>PAGEWIDTH;
++
++  return 0;
++
++}
++
++#elif defined(__sun__)
++
++static ufixnum
++get_phys_pages_no_malloc(char n,char ramp) {
++
++  return sysconf(_SC_PHYS_PAGES);
++
++}
++
++#elif defined(FREEBSD)
++
++#include <sys/types.h>
++#include <sys/sysctl.h>
++
++static ufixnum
++get_phys_pages_no_malloc(char n,char ramp) {
++
++  size_t i,len=sizeof(i);
++
++  return (sysctlbyname("hw.physmem",&i,&len,NULL,0) ? 0 : i)>>PAGEWIDTH;
++
++}
++
++#else /*Linux*/
++
+ static char *
+ next_line(int l,ufixnum *s) {
+@@ -240,65 +298,6 @@ parse_proc_meminfo(ufixnum *t,ufixnum *f
+ }
+-
+-#if defined(__CYGWIN__)||defined(__MINGW32__)
+-
+-#include <windows.h>
+-
+-static ufixnum
+-get_phys_pages_no_malloc(char n,char ramp) {
+-
+-  MEMORYSTATUS m;
+-
+-  m.dwLength=sizeof(m);
+-  GlobalMemoryStatus(&m);
+-  return m.dwTotalPhys>>PAGEWIDTH;
+-
+-}
+-
+-#elif defined (DARWIN)
+-
+-#include <sys/sysctl.h>
+-
+-static ufixnum
+-get_phys_pages_no_malloc(char n,char ramp) {
+-
+-  uint64_t s;
+-  size_t z=sizeof(s);
+-  int m[2]={CTL_HW,HW_MEMSIZE};
+-
+-  if (sysctl(m,2,&s,&z,NULL,0)==0)
+-    return s>>PAGEWIDTH;
+-
+-  return 0;
+-
+-}
+-
+-#elif defined(__sun__)
+-
+-static ufixnum
+-get_phys_pages_no_malloc(char n,char ramp) {
+-
+-  return sysconf(_SC_PHYS_PAGES);
+-
+-}
+-
+-#elif defined(FREEBSD)
+-
+-#include <sys/types.h>
+-#include <sys/sysctl.h>
+-
+-static ufixnum
+-get_phys_pages_no_malloc(char n,char ramp) {
+-
+-  size_t i,len=sizeof(i);
+-
+-  return (sysctlbyname("hw.physmem",&i,&len,NULL,0) ? 0 : i)>>PAGEWIDTH;
+-
+-}
+-
+-#else /*Linux*/
+-
+ static ufixnum
+ get_phys_pages_no_malloc(char freep,char ramp) {
+@@ -446,6 +445,13 @@ set_real_maxpage(void *beg) {
+   mp=ufmin(mp,get_phys_pages1(0,0));
++#if defined(__APPLE__) && defined(__aarch64__)
++  {
++    extern unsigned long heap_vmsize;
++    mp=ufmin(mp,heap_vmsize>>PAGEWIDTH);
++  }
++#endif
++
+   sz=ufmin(mem_bound,log_maxpage_bound);
+   sz=(1UL<<sz)+((1UL<<sz)-1);
+   mp=ufmin(mp,page(sz));
+@@ -716,6 +722,10 @@ DEFUN("KCL-SELF",object,fSkcl_self,SI,0,
+ }
++#if defined(__APPLE__) && defined(__aarch64__)
++#include "disable_mac_aslr.h"
++#endif
++
+ int
+ main(int argc, char **argv, char **envp) {
+@@ -727,6 +737,10 @@ main(int argc, char **argv, char **envp)
+   bds_top = bds_org-1;
+   frs_top = frs_org-1;
++#if defined(__APPLE__) && defined(__aarch64__)
++  disable_aslr(argc, argv, envp);
++#endif
++
+ #include "cstack.h"
+   gcl_init_alloc(alloca(1));
+@@ -1408,6 +1422,10 @@ init_main(void) {
+   ADD_FEATURE("LARGE-MEMORY-MODEL");
+ #endif
++#ifdef ADDITIONAL_FEATURES
++  ADDITIONAL_FEATURES;
++#endif
++
+   make_special("*FEATURES*",features);}
+   
+   make_si_function("SAVE-SYSTEM", siLsave_system);
+--- gcl27-2.7.1.orig/o/msbrk.c
++++ gcl27-2.7.1/o/msbrk.c
+@@ -21,7 +21,11 @@ msbrk_end(void) {
+ static void *
+ new_map(void *v,ufixnum s) {
+-  return mmap(v,s,PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_ANON|MAP_FIXED,-1,0);
++  return mmap(v,s,PROT_READ|PROT_WRITE
++#ifndef W_X
++            |PROT_EXEC
++#endif
++            ,MAP_PRIVATE|MAP_ANON|MAP_FIXED,-1,0);
+ }
+ #if defined(DARWIN)
+@@ -29,7 +33,10 @@ new_map(void *v,ufixnum s) {
+   but not so large that the Mac linker ignores the segment designation
+   and creates a __huge section under __DATA for this and other
+   variables.  We enlarge this on unexec.*/
+-asm (".zerofill __HEAP,__heap,__end,0x70000000\n\t.globl __end");
++unsigned long heap_vmsize=INITIAL_HEAP_VMSIZE;
++#define mstr(a) #a
++#define Mstr(a) mstr(a)
++asm (".zerofill __HEAP,__heap,__end," Mstr(INITIAL_HEAP_VMSIZE) "\n\t.globl __end");
+ #endif
+ int
+--- gcl27-2.7.1.orig/o/pre_qfv.c
++++ gcl27-2.7.1/o/pre_qfv.c
+@@ -1,6 +1,15 @@
++#ifdef __APPLE__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wunused-function"
++#endif
++
+ #include "include.h"
+ #include "arth.h"
++#ifdef __APPLE__
++#pragma clang diagnostic pop
++#endif
++
+ #define EMPTY()
+ #define DEFER(id) id EMPTY()
+--- gcl27-2.7.1.orig/o/run_process.c
++++ gcl27-2.7.1/o/run_process.c
+@@ -544,43 +544,46 @@ make_socket_pair()
+  * with "C" type streams.
+  */
++#include <spawn.h>
++#include <unistd.h>
++#include <sys/wait.h>
++
++#ifdef __APPLE__
++#include <crt_externs.h>
++#define environ (*_NSGetEnviron())
++#else
++extern char **environ;
++#endif
++
+ static void
+ spawn_process_with_streams(object istream,object ostream,char *pname,char **argv) {
+-  int fdin;
+-  int fdout;
++  int fdin,fdout,spawn_err;
++  pid_t pid;
++  posix_spawn_file_actions_t actions;
+-  if (istream->sm.sm_fp == NULL || ostream->sm.sm_fp == NULL)
+-    FEerror("Cannot spawn process with given stream", 0);
++  massert(istream->sm.sm_fp&&ostream->sm.sm_fp);
+   fdin = istream->sm.sm_int;
+   fdout = ostream->sm.sm_int;
+-  if (!pvfork()) {
+-
+-    /* the child --- replace standard in and out with descriptors given */
+-    close(0);
+-    massert(dup(fdin)>=0);
+-    close(1);
+-    massert(dup(fdout)>=0);
++  massert(!posix_spawn_file_actions_init(&actions));
++  massert(!posix_spawn_file_actions_adddup2(&actions,fdin,0));
++  massert(!posix_spawn_file_actions_adddup2(&actions,fdout,1));
+-    close(fileno(istream->sm.sm_fp));
+-    close(fileno(ostream->sm.sm_fp));
++  massert(!posix_spawn_file_actions_addclose(&actions,fileno(istream->sm.sm_fp)));
++  massert(!posix_spawn_file_actions_addclose(&actions,fileno(ostream->sm.sm_fp)));
+-    errno=0;
+-    execvp(pname,argv);
+-    _exit(128|(errno&0x7f));
++  spawn_err = posix_spawnp(&pid, pname, &actions, NULL, argv, environ);
+-  } else {
++  posix_spawn_file_actions_destroy(&actions);
+-    close(fdin);
+-    close(fdout);
+-
+-  }
++  massert(!spawn_err);
++  massert(!close(fdin));
++  massert(!close(fdout));
+ }
+-    
+-      
++
+ void
+ run_process(char *filename,char **argv) {
+--- gcl27-2.7.1.orig/o/sfasli.c
++++ gcl27-2.7.1/o/sfasli.c
+@@ -129,6 +129,7 @@ LFD(build_symbol_table)(void) {
+       min_text=p<min_text ? p : min_text;
+     }
+   }
++  massert(min_text);
+ }
+@@ -155,6 +156,11 @@ use_symbols(double d,...) {
+     d=c/d;
+     d=d/(c+I*d);
+   }
++
++#if defined(__APPLE__) && defined(__aarch64__)/*FIXME non-lazy pointer support in sfaslmacho.c*/
++  extern  void __chkstk_darwin(void);
++  __chkstk_darwin();
++#endif
+   
+   return (int)d;
+--- gcl27-2.7.1.orig/o/sfaslmacho.c
++++ gcl27-2.7.1/o/sfaslmacho.c
+@@ -26,10 +26,10 @@
+ #endif
+ #define ALLOC_SEC(sec) ({ul _fl=sec->flags&SECTION_TYPE;\
+-      _fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS;})
++      (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && !(sec->flags&S_ATTR_DEBUG);})
+ #define LOAD_SEC(sec) ({ul _fl=sec->flags&SECTION_TYPE;\
+-      (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL;})
++      (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL && !(sec->flags&S_ATTR_DEBUG);})
+ #define MASK(n) (~(~0ULL << (n)))
+@@ -44,10 +44,8 @@ typedef unsigned long ul;
+ STATIC_RELOC_VARS
+ #endif
+-
+-
+ static int
+-ovchk(ul v,ul m) {
++ovchks(ul v,ul m) {
+   m|=m>>1;
+   v&=m;
+@@ -57,15 +55,55 @@ ovchk(ul v,ul m) {
+ }
+ static int
++ovchku(ul v,ul m) {
++
++  return !(v&=m);
++
++}
++
++static int
+ store_val(ul *w,ul m,ul v) {
+-  massert(ovchk(v,~m));
+   *w=(v&m)|(*w&~m);
+   return 0;
+ }
++static int
++store_valu(ul *w,ul m,ul v) {
++
++  massert(ovchku(v,~m));
++  return store_val(w,m,v);
++
++  return 0;
++
++}
++
++static int
++store_vals(ul *w,ul m,ul v) {
++
++  massert(ovchks(v,~m));
++  return store_val(w,m,v);
++
++}
++
++#ifdef W_X
++static int
++add_vals(ul *w,ul m,ul v) {
++
++  return store_vals(w,m,v+(*w&m));
++
++}
++
++static int
++add_valu(ul *w,ul m,ul v) {
++
++  return store_valu(w,m,v+(*w&m));
++
++}
++#endif
++
+ #ifndef _LP64
+ /*redirect trampolines gcc-4.0 gives no reloc for stub sections on x86 only*/
+ static int
+@@ -102,13 +140,16 @@ relocate(struct relocation_info *ri,stru
+   struct scattered_relocation_info *sri=(void *)ri;
+   ul *q=(void *)(sec->addr+(sri->r_scattered ? sri->r_address : ri->r_address));
+   ul a,rel=(ul)(q+1);
++#ifdef W_X
++  static ul addend;
++#endif
+   if (sri->r_scattered)
+     a=sri->r_value;
+   else if (ri->r_extern)
+     a=n1[ri->r_symbolnum].n_value;
+   else
+-    a=start;
++    a=ri->r_symbolnum;
+   switch(sri->r_scattered ? sri->r_type : ri->r_type) {
+     
+@@ -125,7 +166,7 @@ relocate(struct relocation_info *ri,stru
+ }  
+ static int
+-relocate_symbols(struct nlist *n1,struct nlist *ne,char *st1,ul start) {
++relocate_symbols(struct nlist *n1,struct nlist *ne,char *st1,ul start,struct section *sec1) {
+   struct nlist *n;
+   struct node *nd;
+@@ -133,7 +174,7 @@ relocate_symbols(struct nlist *n1,struct
+   for (n=n1;n<ne;n++)
+     
+     if (n->n_sect) 
+-      n->n_value+=start; 
++      n->n_value+=start+sec1[n->n_sect-1].reserved3;
+     else if ((nd=find_sym_ptable(st1+n->n_un.n_strx)))
+       n->n_value=nd->address; 
+     else if (n->n_type&(N_PEXT|N_EXT))
+@@ -163,12 +204,37 @@ static object
+ load_memory(struct section *sec1,struct section *sece,void *v1,
+           ul *p,ul **got,ul **gote,ul *start) { 
+-  ul sz,gsz,sa,ma,a,fl;
++  ul sz,gsz,ma,a,fl;
++  volatile ul sa;
+   struct section *sec;
+   object memory;
++#ifdef W_X
++  ul text_pbits;
++#endif
+   
+   BEGIN_NO_INTERRUPT;
++  for (sec=sec1;sec<sece;sec++)
++      sec->reserved3=0;/*FIXME unneeded?*/
++
++  gsz=**got ? (**got+1)*sizeof(**got)-1 : 0;
++
++#ifdef W_X
++
++  massert(sece>sec1);
++  massert(ALLOC_SEC(sec1));
++  massert(sec1->flags&(S_ATTR_SOME_INSTRUCTIONS|S_ATTR_PURE_INSTRUCTIONS));
++  massert(!sec1->addr);
++  for (sec=sec1+1,sa=-1;sec<sece;sec++)
++    if (ALLOC_SEC(sec) && sa>sec->addr)
++      sa=sec->addr;
++  text_pbits=(sa+gsz+PAGESIZE-1)>>PAGEWIDTH;
++  sa=(text_pbits<<PAGEWIDTH)+(sa&0xf)-sa;
++  for (sec=sec1+1;sec<sece;sec++)
++    sec->addr+=(sec->reserved3=sa);
++
++#endif
++
+   for (*p=sz=ma=0,sa=-1,sec=sec1;sec<sece;sec++)
+     
+     if (ALLOC_SEC(sec)) {
+@@ -190,21 +256,23 @@ load_memory(struct section *sec1,struct
+   ma=ma>sizeof(struct contblock) ? ma-1 : 0; 
+   sz+=ma;
+-  gsz=0;
+-  if (**got) {
+-    gsz=(**got+1)*sizeof(**got)-1;
+-    sz+=gsz;
+-  }
+-  
++  sz+=gsz;
++
+   memory=new_cfdata();
+-  memory->cfd.cfd_size=sz; 
++  memory->cfd.cfd_size=sz;
++#ifdef W_X
++  memory->cfd.cfd_start=alloc_code_space(sz+PAGESIZE-sizeof(struct contblock),-1UL);
++  memory->cfd.cfd_start=(void *)(((ul)memory->cfd.cfd_start+(PAGESIZE-1))&~(PAGESIZE-1));
++  memory->cfd.cfd_nexp=text_pbits;
++#else
+   memory->cfd.cfd_start=alloc_code_space(sz,-1UL);
++#endif
+   a=(ul)memory->cfd.cfd_start;
+   a=(a+ma)&~ma;
+   for (sec=sec1;sec<sece;sec++)
+     if (ALLOC_SEC(sec)) {
+-      sec->addr+=a;  
++      sec->addr+=a;
+       if (LOAD_SEC(sec))
+       memcpy((void *)sec->addr,v1+sec->offset,sec->size);
+       else
+@@ -213,7 +281,11 @@ load_memory(struct section *sec1,struct
+   if (**got) {
+     sz=**got;
++#ifdef W_X
++    *got=(void *)memory->cfd.cfd_start+(text_pbits<<PAGEWIDTH)-gsz;
++#else
+     *got=(void *)memory->cfd.cfd_start+memory->cfd.cfd_size-gsz;
++#endif
+     gsz=sizeof(**got)-1;
+     *got=(void *)(((ul)*got+gsz)&~gsz);
+     *gote=*got+sz;
+@@ -487,11 +559,14 @@ seek_to_end_ofile(FILE *f) {
+ #ifndef GOT_RELOC
+ #define GOT_RELOC(a) 0
+ #endif
++#ifndef GOT_RELOC_EXTRA
++#define GOT_RELOC_EXTRA(a) 0
++#endif
+ static int
+ label_got_symbols(void *v1,struct section *sec,struct nlist *n1,struct nlist *ne,ul *gs) {
+-  struct relocation_info *ri,*re;
++  struct relocation_info *ri,*re;/*scattered?*/
+   struct nlist *n;
+   *gs=0;
+@@ -504,8 +579,10 @@ label_got_symbols(void *v1,struct sectio
+     
+       massert(ri->r_extern);
+       n=n1+ri->r_symbolnum;
+-      if (!n->n_desc)
++      if (!n->n_desc) {
+       n->n_desc=++*gs;
++      (*gs)+=GOT_RELOC_EXTRA(ri);
++      }
+     }
+@@ -516,13 +593,20 @@ label_got_symbols(void *v1,struct sectio
+ static int
+ clear_protect_memory(object memory) {
++#ifndef W_X
++
+   void *p,*pe;
+   p=(void *)((unsigned long)memory->cfd.cfd_start & ~(PAGESIZE-1));
+   pe=(void *)((unsigned long)(memory->cfd.cfd_start+memory->cfd.cfd_size + PAGESIZE-1) & ~(PAGESIZE-1));
+-
+   return gcl_mprotect(p,pe-p,PROT_READ|PROT_WRITE|PROT_EXEC);
++#else
++
++  return gcl_mprotect((void *)memory->cfd.cfd_start,memory->cfd.cfd_nexp<<PAGEWIDTH,PROT_READ|PROT_EXEC);
++
++#endif
++
+ }
+@@ -551,7 +635,7 @@ fasload(object faslfile) {
+   
+   massert(p=alloca(rls));
+   
+-  relocate_symbols(n1,ne,st1,start);
++  relocate_symbols(n1,ne,st1,start,sec1);
+   find_init_address(n1,ne,st1,&init_address);
+@@ -561,16 +645,17 @@ fasload(object faslfile) {
+   
+   massert(!clear_protect_memory(memory));
+-#ifdef CLEAR_CACHE
++#if defined(HAVE_BUILTIN_CLEAR_CACHE)
++  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
++#elif defined(CLEAR_CACHE)
+   CLEAR_CACHE;
+ #endif
+   
+   massert(!un_mmap(v1,ve));
+   
+   if(symbol_value(sLAload_verboseA)!=Cnil) {
+-    printf(";; start address for %.*s %p\n",
+-         (int)VLEN(memory->cfd.cfd_name),memory->cfd.cfd_name->st.st_self,
+-         memory->cfd.cfd_start);
++    coerce_to_filename(memory->cfd.cfd_name,FN1);
++    printf(";; start address for %s %p\n",FN1,memory->cfd.cfd_start);
+     fflush(stdout);
+   }
+--- gcl27-2.7.1.orig/o/sgbc.c
++++ gcl27-2.7.1/o/sgbc.c
+@@ -191,6 +191,11 @@ sgc_sweep_phase(void) {
+       if (TYPEWORD_TYPE_P(v->type) && x->d.s == SGC_NORMAL)
+         continue;
+ #endif
++
++#ifdef W_X
++      if (type_of(x)==t_cfdata && !x->d.tt && !is_free(x))
++        gcl_mprotect((void *)x->cfd.cfd_start,x->cfd.cfd_nexp<<PAGEWIDTH,PROT_READ|PROT_WRITE);
++#endif
+       
+       k++;
+       make_free(x);
+--- gcl27-2.7.1.orig/o/unexmacosx.c
++++ gcl27-2.7.1/o/unexmacosx.c
+@@ -808,17 +808,221 @@ copy_other (struct load_command *lc)
+   curr_header_offset += lc->cmdsize;
+ }
++static void
++copy_linkedit (struct load_command *lc, long delta) {
++
++  struct linkedit_data_command *ldc=(struct linkedit_data_command *)lc;
++
++  ldc->dataoff+=delta;
++  copy_other ((void *)ldc);
++
++}
++
++typedef struct {
++  uint32_t magic;           /* 0xfade0cc0 */
++  uint32_t length;          /* Total length of SuperBlob */
++  uint32_t count;           /* Number of sub-blobs (usually 1 or 2) */
++} CS_SuperBlob;
++
++typedef struct {
++  uint32_t type;            /* 0 for CodeDirectory, 5 for Entitlements */
++  uint32_t offset;          /* Offset from start of SuperBlob */
++} CS_BlobIndex;
++
++typedef struct {
++  uint32_t magic;           /* 0xfade0c02 */
++  uint32_t length;          /* Length of this blob */
++  uint32_t version;         /* 0x20400 for ARM64 compatibility */
++  uint32_t flags;           /* Ad-hoc is usually 0 or 0x2 (adhoc) */
++  uint32_t hashOffset;      /* Offset to the hashes from start of this blob */
++  uint32_t identOffset;     /* Offset to the identifier string */
++  uint32_t nSpecialSlots;   /* Number of special slots (usually 0 for ad-hoc) */
++  uint32_t nCodeSlots;      /* Number of 4K pages in the file */
++  uint32_t codeLimit;       /* Total size of file being signed */
++  uint8_t  hashSize;        /* 32 for SHA-256 */
++  uint8_t  hashType;        /* 2 for SHA-256 */
++  uint8_t  platform;        /* 0 */
++  uint8_t  pageSize;        /* 12 (means 2^12 = 4096) */
++  uint32_t spare2;          /* 0 */
++  /* Version 0x20400 adds: */
++  uint32_t scatterOffset;   /* 0 */
++  uint32_t teamOffset;      /* 0 or offset to Team ID string */
++  uint32_t spare3;          /* 0 */
++  uint64_t codeLimit64;     /* 0 (unless file > 4GB) */
++  uint64_t execSegBase;     /* File offset of the __TEXT segment */
++  uint64_t execSegLimit;    /* Size of the __TEXT segment */
++  uint64_t execSegFlags;    /* Flags (CS_EXECSEG_*) */
++} CS_CodeDirectory;
++
++typedef struct {
++  uint32_t magic;      /* 0xfade0c01 (Requirements Set) */
++  uint32_t length;     /* Total length of this blob (usually 12 for empty sets) */
++  uint32_t count;      /* Number of Requirements in this set (0 for ad-hoc) */
++  /* Requirement Index entries follow if count > 0 */
++} CS_Requirements;
++
++typedef struct {
++  uint32_t magic;      /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */
++  uint32_t length;     /* Total length of header + CMS data */
++} CS_BlobWrapper;
++
++#include <CommonCrypto/CommonDigest.h>
++/*void calculate_page_hash(const void *data, size_t len, uint8_t *out_hash) {*/
++
++#define uassert(a_)                                                     \
++  ({errno=0;                                                            \
++    if (!(a_)) {                                                        \
++      emsg("The assertion %s on line %d of %s in function %s failed: %s", \
++         #a_,__LINE__,__FILE__,__FUNCTION__,strerror(errno));           \
++      do_gcl_abort();                                                   \
++    };})
++#define mwrite(a,b) uassert(write(outfd,(a),(b))==(b));
++#define mpwrite(a,b,c) uassert(pwrite(outfd,(a),(b),(c))==(b));
++#define mpred(a,b,c) uassert(pread(outfd,(a),(b),(c))==(b))
++#define RNDUP(x,y) (((x)+(y)-1)&~((y)-1))
++
++int
++dump_code_signature(struct segment_command *le_seg,
++                  struct segment_command *tx_seg,
++                  unsigned long le_ho,int csf) {
++
++  struct linkedit_data_command ldc={LC_CODE_SIGNATURE,16,0,0};
++  CS_SuperBlob sb;
++  CS_BlobIndex bi[3];
++  CS_CodeDirectory cd;
++  CS_Requirements rq;
++  CS_BlobWrapper cms;
++  const char *id="GCL";
++  const long nss=2,ss=32,id_len=RNDUP(strlen(id)+1,8);
++  long cd_len,len,np,i;
++  uint8_t hash[32],data[PAGESIZE];
++  void *v;
++
++
++  lseek(outfd,0,SEEK_END);
++  len=lseek(outfd,0,SEEK_CUR);
++  if (len%16) {
++    unsigned long x=0;
++    mwrite(&x,sizeof(x));
++    len=lseek(outfd,0,SEEK_CUR);
++  }
++  ldc.dataoff=len;
++
++  np=RNDUP(len,PAGESIZE)>>PAGEWIDTH;
++  cd_len=sizeof(cd)+id_len+(nss+np)*ss;
++  ldc.datasize=sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms);
++
++  mpwrite(&ldc,sizeof(ldc),curr_header_offset);
++  curr_header_offset+=ldc.cmdsize;
++
++  le_seg->filesize+=ldc.datasize;
++  le_seg->vmsize+=RNDUP(ldc.datasize,PAGESIZE);
++  mpwrite(le_seg,sizeof(*le_seg),le_ho);
++
++  uassert(curr_header_offset<=text_seg_lowest_offset);
++
++#if VERBOSE
++  printf ("%ld unused bytes follow Mach-O header\n",
++               text_seg_lowest_offset - curr_header_offset);
++#endif
++
++  mh.sizeofcmds=curr_header_offset-sizeof(mh);
++  mh.ncmds+=(1-csf);
++  mpwrite(&mh,sizeof(mh),0);
++
++  sb.magic=htonl(0xfade0cc0);
++  sb.length=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms));
++  sb.count=htonl(sizeof(bi)/sizeof(*bi));
++  mwrite(&sb,sizeof(sb));
++
++  bi[0].type=htonl(0);
++  bi[0].offset=htonl(sizeof(sb)+sizeof(bi));
++  bi[1].type=htonl(2);
++  bi[1].offset=htonl(sizeof(sb)+sizeof(bi)+cd_len);
++  bi[2].type=htonl(0x10000);
++  bi[2].offset=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq));
++  mwrite(&bi,sizeof(bi));
++
++  cd.magic=htonl(0xfade0c02);
++  cd.length=htonl(cd_len);
++  cd.version=htonl(0x20400);
++  cd.flags=htonl(2);
++  cd.hashOffset=htonl(cd_len-np*ss);
++  cd.identOffset=htonl(sizeof(cd));
++  cd.nSpecialSlots=htonl(nss);
++  cd.nCodeSlots=htonl(np);
++  cd.codeLimit=htonl(len<0x100000000 ? len : 0);
++  cd.hashSize=32;
++  cd.hashType=2;
++  cd.platform=0;
++  cd.pageSize=PAGEWIDTH;
++  cd.spare2=0;
++  cd.scatterOffset=htonl(0);
++  cd.teamOffset=htonl(0);
++  cd.spare3=htonl(0);
++  cd.codeLimit64=htonll(len>=0x100000000 ? len : 0);
++  cd.execSegBase=htonll(tx_seg->fileoff);
++  cd.execSegLimit=htonll(tx_seg->filesize);
++  cd.execSegFlags=htonll(1);
++  mwrite(&cd,sizeof(cd));
++
++  uassert(v=alloca(id_len));
++  uassert(memset(v,0,id_len));
++  uassert(strcpy(v,id));
++  mwrite(v,id_len);
++
++  rq.magic=htonl(0xfade0c01);
++  rq.length=htonl(12);
++  rq.count=htonl(0);
++  CC_SHA256(&rq,sizeof(rq),hash);
++  mwrite(hash,sizeof(hash));
++
++  uassert(memset(hash,0,sizeof(hash)));
++  mwrite(hash,sizeof(hash));
++
++  for (i=0;i<np;i++) {
++    uassert(memset(data,0,sizeof(data)));
++    mpred(data,i==np-1 ? ntohl(cd.codeLimit)-(i<<PAGEWIDTH) : sizeof(data),i<<PAGEWIDTH);
++    CC_SHA256(data,sizeof(data),hash);
++    mwrite(hash,sizeof(hash));
++  }
++
++  mwrite(&rq,sizeof(rq));
++
++  cms.magic=htonl(0xfade0b01);
++  cms.length=htonl(8);
++  mwrite(&cms,sizeof(cms));
++
++  return 0;
++
++}
++
+ /* Loop through all load commands and dump them.  Then write the Mach
+    header.  */
+ static void
+ dump_it () {
+-  int i;
+-  long linkedit_delta=0,linkedit_vmdelta=0;
++  int i,csf=0;
++  long linkedit_delta=0,linkedit_vmdelta=0,linkedit_vmsize=0,text_vmaddr=0;
++  struct segment_command *le_seg=NULL,*tx_seg=NULL;
++  unsigned long le_ho=0;
+   
+ #if VERBOSE
+   printf ("--- Load Commands written to Output File ---\n");
+ #endif
++
++  for (i=0;i<nlc;i++)
++    switch(lca[i]->cmd) {
++    case LC_SEGMENT:
++      if (strncmp (((struct segment_command *) lca[i])->segname, SEG_LINKEDIT, 16) == 0) {
++      linkedit_vmsize=((struct segment_command *) lca[i])->vmsize;
++      le_seg=(struct segment_command *)lca[i];
++      } else if (strncmp (((struct segment_command *) lca[i])->segname, SEG_TEXT, 16) == 0) {
++      text_vmaddr=((struct segment_command *) lca[i])->vmaddr;
++      tx_seg=(struct segment_command *)lca[i];
++      }
++    }
++  uassert(le_seg&&tx_seg);
+   
+   for (i = 0; i < nlc; i++)
+     switch (lca[i]->cmd) {
+@@ -844,10 +1048,18 @@ dump_it () {
+         extern char *data_start;
+         struct section *sectp = (struct section *) (scp + 1);
+         unsigned long header_offset=curr_header_offset + sizeof (struct segment_command);
++        extern int in_pre_gcl;/*support libboot.so*/
++        unsigned long heap_vmsize=                                    \
++          (in_pre_gcl ? SAVED_PRE_IMAGE_SPAN : SAVED_IMAGE_SPAN) -    \
++          (long)((long)data_start-text_vmaddr) -                      \
++          linkedit_vmsize;
++
++        if (core_end-data_start>heap_vmsize)
++          unexec_error ("data exceeds __HEAP vmsize");
+         
+         scp->vmaddr=(long)data_start;
+-        linkedit_vmdelta=(1UL<<37)-scp->vmsize;
+-        scp->vmsize=(1UL<<37);
++        linkedit_vmdelta=heap_vmsize-scp->vmsize;
++        scp->vmsize=heap_vmsize;
+         scp->fileoff=curr_file_offset;
+         scp->filesize=core_end-data_start;
+         scp->maxprot=VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE;
+@@ -858,6 +1070,7 @@ dump_it () {
+         sectp->addr=scp->vmaddr;
+         sectp->size=scp->filesize;
+         sectp->flags=S_REGULAR;
++        sectp->offset=scp->fileoff;
+         if (!unexec_write (header_offset, sectp, sizeof (struct section)))
+           unexec_error ("cannot write section _HEAP's header");
+@@ -876,6 +1089,7 @@ dump_it () {
+           unexec_error ("cannot handle multiple LINKEDIT segments in input file");
+         linkedit_delta = curr_file_offset - scp->fileoff;
+         scp->vmaddr+=linkedit_vmdelta;
++        le_ho=curr_header_offset;
+         copy_segment (lca[i]);
+       } else
+         copy_segment (lca[i]);
+@@ -896,22 +1110,20 @@ dump_it () {
+       copy_dyld_info (lca[i], linkedit_delta);
+       break;
+ #endif
++    case LC_CODE_SIGNATURE:
++      csf=1;
++      break;
++    case LC_DATA_IN_CODE:
++    case LC_FUNCTION_STARTS:
++    case LC_DYLD_EXPORTS_TRIE:
++      copy_linkedit(lca[i],linkedit_delta);/*FIXME*/
++      break;
+     default:
+       copy_other (lca[i]);
+       break;
+     }
+-  
+-  if (curr_header_offset > text_seg_lowest_offset)
+-    unexec_error ("not enough room for load commands for new __DATA segments");
+-  
+-#if VERBOSE
+-  printf ("%ld unused bytes follow Mach-O header\n",
+-               text_seg_lowest_offset - curr_header_offset);
+-#endif
+-  
+-  mh.sizeofcmds = curr_header_offset - sizeof (struct mach_header);
+-  if (!unexec_write (0, &mh, sizeof (struct mach_header)))
+-    unexec_error ("cannot write final header contents");
++
++  dump_code_signature(le_seg,tx_seg,le_ho,csf);
+ }
+@@ -1014,7 +1226,7 @@ unexec (char *outfile, char *infile, voi
+   if ((infd = open (infile, O_RDONLY, 0)) < 0)
+     unexec_error ("cannot open input file `%s'", infile);
+-  if ((outfd = open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755)) < 0) {
++  if ((outfd = open (outfile, O_RDWR | O_TRUNC | O_CREAT, 0755)) < 0) {
+     close (infd);
+     unexec_error ("cannot open output file `%s'", outfile);
+   }
+@@ -1042,7 +1254,7 @@ static size_t stub_size (malloc_zone_t *
+ #ifdef HAVE_MALLOC_ZONE_MEMALIGN
+ static void *
+-stub_memalign(size_t boundary, size_t size) {
++stub_memalign(malloc_zone_t *zone,size_t boundary, size_t size) {
+   extern void *my_malloc (size_t);
+   void *v=my_malloc(size+boundary-1);
+--- gcl27-2.7.1.orig/o/unixsys.c
++++ gcl27-2.7.1/o/unixsys.c
+@@ -41,7 +41,7 @@ vsystem(char *command) {
+   char *c;
+   const char *x1[]={"/bin/sh","-c",NULL,NULL},*spc=" \n\t",**p1,**pp,**pe;
+   int s;
+-  pid_t pid;
++  pid_t pid,pid1;
+   posix_spawnattr_t attr;
+   posix_spawn_file_actions_t file_actions;
+   extern char **environ;
+@@ -68,7 +68,9 @@ vsystem(char *command) {
+   massert(!posix_spawn_file_actions_destroy(&file_actions));
+   massert(pid>0);
+-  massert(pid==waitpid(pid,&s,0));
++
++  for (;(pid1=waitpid(pid,&s,0))!=pid && errno==EINTR;);
++  massert(pid==pid1);
+   if ((s>>8)&128)
+     emsg("execvp failure when executing '%s': %s\n",command,strerror((s>>8)&0x7f));
+--- gcl27-2.7.1.orig/o/usig.c
++++ gcl27-2.7.1/o/usig.c
+@@ -173,6 +173,18 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable
+ }
++DEFUN("FETESTEXCEPT",object,fSfetestexcept,SI,1,1,NONE,II,OO,OO,OO,(fixnum x),"") {
++
++  RETURN1((object)(long)fetestexcept(x));
++
++}
++
++DEFUN("FECLEAREXCEPT",object,fSfeclearexcept,SI,1,1,NONE,II,OO,OO,OO,(fixnum x),"") {
++
++  RETURN1((object)(long)feclearexcept(x));
++
++}
++
+ DEFUN("FEDISABLEEXCEPT",object,fSfedisableexcept,SI,0,0,NONE,IO,OO,OO,OO,(void),"") {
+   fixnum x=0;
+--- gcl27-2.7.1.orig/o/xdrfuns.c
++++ gcl27-2.7.1/o/xdrfuns.c
+@@ -163,6 +163,9 @@ DEFUN("XDR-READ",object,fSxdr_read,SI,2,
+     return elt;
+     break;
+   default:
++    {short s;
++      xdr_short(xdrp,&s);
++    }/*ensure stub*/
+     FEerror("unsupported xdr ~a",1,elt);
+     return elt;
+     break;
+--- gcl27-2.7.1.orig/pcl/gcl_pcl_dfun.lisp
++++ gcl27-2.7.1/pcl/gcl_pcl_dfun.lisp
+@@ -1345,14 +1345,17 @@ And so, we are saved.
+     (t   t)))
+ (defun class-applicable-using-class-p (specl type)
+-  (let ((pred (memq specl (if (eq *boot-state* 'complete)
++  (let* ((pred (memq specl (if (eq *boot-state* 'complete)
+                             (class-precedence-list type)
+-                            (early-class-precedence-list type)))))
++                            (early-class-precedence-list type))))
++       ;FIXME C compiler bug workaround ignored variadic decl macosx arm
++       (scp (unless (or pred *in-precompute-effective-methods-p*)
++              (superclasses-compatible-p specl type))))
+     (values pred
+           (or pred
+               (if (not *in-precompute-effective-methods-p*)
+                   ;; classes might get common subclass
+-                  (superclasses-compatible-p specl type)
++                  scp
+                   ;; worry only about existing classes
+                   (classes-have-common-subclass-p specl type))))))
diff --git a/debian/patches/Version_2_7_2pre19 b/debian/patches/Version_2_7_2pre19
new file mode 100644 (file)
index 0000000..98d370a
--- /dev/null
@@ -0,0 +1,660 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 13 2026 17:11:44 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1105309
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -31,6 +31,14 @@ my_unixport_LIBRARIES=unixport/libgcl.a
+ bin_SCRIPTS=bin/gcl
+ check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results
+ info_TEXINFOS=info/gcl.texi info/gcl-si.texi
++info_gcl_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\
++                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
++                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
++                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
++info_gcl_si_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\
++                      number sequence character list io form compile \
++                      symbol system structure iteration user-interface doc type internal c-interface \
++                      si-defs debug misc compiler-defs japi))
+ my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \
+                                      gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp)
+ my_h_DATA=h/cmpinclude.h
+@@ -85,6 +93,7 @@ dist_noinst_DATA+=$(addprefix xgcl-2/,dw
+                       $(patsubst %.o,%.lsp,$(X_OBJS)))
+ info_TEXINFOS+=info/gcl-dwdoc.texi
++info_gcl_dwdoc_TEXINFOS=
+ if AMM_GPROF
+ noinst_LIBRARIES+=lib/libxgcl_gprof.a
+@@ -105,22 +114,15 @@ dist_gcltkdoc_DATA=$(addprefix gcl-tk/de
+                       nqthm-stack showVars widget))
+ dist_noinst_DATA+=gcl-tk/tkl.lisp gcl-tk/tinfo.lsp
+ info_TEXINFOS+=info/gcl-tk.texi
+-
++info_gcl_tk_TEXINFOS=$(addprefix info/,$(addsuffix .texi,general widgets control))
+ endif
+-EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\
++EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L)\
+          lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \
+          majvers minvers git.tag release bin/c23.awk
+ # end of primaries
+-INCL_TEXI=$(addprefix info/,$(addsuffix .texi,\
+-   bind c-interface chap-1 chap-10 chap-11 chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 \
+-   chap-2 chap-20 chap-21 chap-22 chap-23 chap-24 chap-25 chap-26 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 \
+-   chap-9 chap-a character compile compiler-defs control debug doc form \
+-   general internal io iteration japi list misc number sequence si-defs structure symbol system type \
+-   user-interface widgets))
+-
+ INCL_C=o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \
+        o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \
+        o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c
+@@ -364,8 +366,9 @@ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o
+ gcl0/%.o: | unixport/gcl0
+       rm -f $(@D)/$*.done
+       $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+-      [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+-              ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
++      [ "$*" = "gcl_seqlib" ] || [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || \
++      [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
++              ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link, clang variadic pointer bug
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+ $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp
+@@ -590,7 +593,8 @@ info/gcl%-si.texi: info/gcl-si.texi
+ info/gcl%-tk.texi: info/gcl-tk.texi
+       sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
+ info/gcl%.texi: info/gcl.texi
+-      sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
++      echo $* | grep -q '-' || sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
++      touch $@
+ %.info: %.texi | xbin/mktmp # FIXME parallel ugliness
+       i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i
+@@ -624,18 +628,3 @@ AM_ETAGSFLAGS=--regex='/[ \n\t\#\.`]*(de
+             --regex='/[ \n\t\#\.`]*(defmfun[ \n\t]+"[^ \n\t"]+"[ \n\t]+\([^ \n\t]+\)/\1/'
+ TAGS_FILES=lsp/*.lsp cmpnew/*.lsp mod/*.lsp pcl/*sp clcs/*sp xgcl-2/*p
+-
+-info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\
+-                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
+-                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
+-                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
+-      touch $@
+-
+-info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\
+-                      number sequence character list io form compile \
+-                      symbol system structure iteration user-interface doc type internal c-interface \
+-                      si-defs debug misc compiler-defs japi))
+-      touch $@
+-
+-info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control))
+-      touch $@
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -741,7 +741,9 @@ am__define_uniq_tagged_files = \
+     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+   done | $(am__uniquify_input)`
+ AM_RECURSIVE_TARGETS = cscope
+-am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in \
++am__DIST_COMMON = $(dist_man1_MANS) $(info_gcl_TEXINFOS) \
++      $(info_gcl_dwdoc_TEXINFOS) $(info_gcl_si_TEXINFOS) \
++      $(info_gcl_tk_TEXINFOS) $(srcdir)/Makefile.in \
+       $(top_srcdir)/bin/gcl.in $(top_srcdir)/gcl-tk/gcltksrv.in \
+       $(top_srcdir)/h/gclincl.h.in \
+       $(top_srcdir)/unixport/init_raw.lsp.in AUTHORS COPYING \
+@@ -955,6 +957,16 @@ bin_SCRIPTS = bin/gcl
+ check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results
+ info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \
+       $(am__append_9)
++info_gcl_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\
++                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
++                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
++                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
++
++info_gcl_si_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\
++                      number sequence character list io form compile \
++                      symbol system structure iteration user-interface doc type internal c-interface \
++                      si-defs debug misc compiler-defs japi))
++
+ my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \
+                                      gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp)
+@@ -990,6 +1002,7 @@ dist_noinst_DATA = $(am__append_5) $(am_
+ @AMM_XGCL_TRUE@               Xlib Xutil X XAtom defentry_events Xstruct XStruct_l_3 \
+ @AMM_XGCL_TRUE@               general keysymdef X10 Xinit dwtrans tohtml index))
++@AMM_XGCL_TRUE@info_gcl_dwdoc_TEXINFOS = 
+ @AMM_TK_TRUE@my_gcltk_SCRIPTS = gcl-tk/gcltksrv
+ @AMM_TK_TRUE@my_gcltk_DATA = gcl-tk/tkl.o gcl-tk/tinfo.o gcl-tk/demos/gc-monitor.o
+ @AMM_TK_TRUE@gcltkdoc_DATA = gcl-tk/demos/index.lsp
+@@ -999,19 +1012,13 @@ dist_noinst_DATA = $(am__append_5) $(am_
+ @AMM_TK_TRUE@                 mkLabel mkListbox mkPlot mkRadio mkRuler mkSearch mkStyles mkTextBind mkVScale \
+ @AMM_TK_TRUE@                 nqthm-stack showVars widget))
+-EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\
++@AMM_TK_TRUE@info_gcl_tk_TEXINFOS = $(addprefix info/,$(addsuffix .texi,general widgets control))
++EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L)\
+          lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \
+          majvers minvers git.tag release bin/c23.awk
+ # end of primaries
+-INCL_TEXI = $(addprefix info/,$(addsuffix .texi,\
+-   bind c-interface chap-1 chap-10 chap-11 chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 \
+-   chap-2 chap-20 chap-21 chap-22 chap-23 chap-24 chap-25 chap-26 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 \
+-   chap-9 chap-a character compile compiler-defs control debug doc form \
+-   general internal io iteration japi list misc number sequence si-defs structure symbol system type \
+-   user-interface widgets))
+-
+ INCL_C = o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \
+        o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \
+        o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c
+@@ -3106,7 +3113,7 @@ info/$(am__dirstamp):
+       @$(MKDIR_P) info
+       @: >>info/$(am__dirstamp)
+-info/gcl.info: info/gcl.texi 
++info/gcl.info: info/gcl.texi $(info_gcl_TEXINFOS)
+       @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       rm -rf $$backupdir && mkdir $$backupdir && \
+@@ -3125,19 +3132,19 @@ info/gcl.info: info/gcl.texi
+       fi; \
+       rm -rf $$backupdir; exit $$rc
+-info/gcl.dvi: info/gcl.texi  info/$(am__dirstamp)
++info/gcl.dvi: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi
+-info/gcl.pdf: info/gcl.texi  info/$(am__dirstamp)
++info/gcl.pdf: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi
+-info/gcl.html: info/gcl.texi  info/$(am__dirstamp)
++info/gcl.html: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \
+        -o $(@:.html=.htp) `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi; \
+@@ -3147,7 +3154,7 @@ info/gcl.html: info/gcl.texi  info/$(am_
+         rm -rf $(@:.html=.htp); exit 1; \
+       fi
+-info/gcl-si.info: info/gcl-si.texi 
++info/gcl-si.info: info/gcl-si.texi $(info_gcl_si_TEXINFOS)
+       @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       rm -rf $$backupdir && mkdir $$backupdir && \
+@@ -3166,19 +3173,19 @@ info/gcl-si.info: info/gcl-si.texi
+       fi; \
+       rm -rf $$backupdir; exit $$rc
+-info/gcl-si.dvi: info/gcl-si.texi  info/$(am__dirstamp)
++info/gcl-si.dvi: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi
+-info/gcl-si.pdf: info/gcl-si.texi  info/$(am__dirstamp)
++info/gcl-si.pdf: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi
+-info/gcl-si.html: info/gcl-si.texi  info/$(am__dirstamp)
++info/gcl-si.html: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \
+        -o $(@:.html=.htp) `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi; \
+@@ -3188,7 +3195,7 @@ info/gcl-si.html: info/gcl-si.texi  info
+         rm -rf $(@:.html=.htp); exit 1; \
+       fi
+-info/gcl-dwdoc.info: info/gcl-dwdoc.texi 
++info/gcl-dwdoc.info: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS)
+       @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       rm -rf $$backupdir && mkdir $$backupdir && \
+@@ -3207,19 +3214,19 @@ info/gcl-dwdoc.info: info/gcl-dwdoc.texi
+       fi; \
+       rm -rf $$backupdir; exit $$rc
+-info/gcl-dwdoc.dvi: info/gcl-dwdoc.texi  info/$(am__dirstamp)
++info/gcl-dwdoc.dvi: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi
+-info/gcl-dwdoc.pdf: info/gcl-dwdoc.texi  info/$(am__dirstamp)
++info/gcl-dwdoc.pdf: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi
+-info/gcl-dwdoc.html: info/gcl-dwdoc.texi  info/$(am__dirstamp)
++info/gcl-dwdoc.html: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \
+        -o $(@:.html=.htp) `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi; \
+@@ -3229,7 +3236,7 @@ info/gcl-dwdoc.html: info/gcl-dwdoc.texi
+         rm -rf $(@:.html=.htp); exit 1; \
+       fi
+-info/gcl-tk.info: info/gcl-tk.texi 
++info/gcl-tk.info: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS)
+       @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       rm -rf $$backupdir && mkdir $$backupdir && \
+@@ -3248,19 +3255,19 @@ info/gcl-tk.info: info/gcl-tk.texi
+       fi; \
+       rm -rf $$backupdir; exit $$rc
+-info/gcl-tk.dvi: info/gcl-tk.texi  info/$(am__dirstamp)
++info/gcl-tk.dvi: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi
+-info/gcl-tk.pdf: info/gcl-tk.texi  info/$(am__dirstamp)
++info/gcl-tk.pdf: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \
+       $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi
+-info/gcl-tk.html: info/gcl-tk.texi  info/$(am__dirstamp)
++info/gcl-tk.html: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp)
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \
+        -o $(@:.html=.htp) `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi; \
+@@ -4665,8 +4672,9 @@ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o
+ gcl0/%.o: | unixport/gcl0
+       rm -f $(@D)/$*.done
+       $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+-      [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+-              ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
++      [ "$*" = "gcl_seqlib" ] || [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || \
++      [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
++              ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link, clang variadic pointer bug
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+ $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp
+@@ -4876,7 +4884,8 @@ info/gcl%-si.texi: info/gcl-si.texi
+ info/gcl%-tk.texi: info/gcl-tk.texi
+       sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
+ info/gcl%.texi: info/gcl.texi
+-      sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
++      echo $* | grep -q '-' || sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@
++      touch $@
+ %.info: %.texi | xbin/mktmp # FIXME parallel ugliness
+       i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i
+@@ -4905,21 +4914,6 @@ distclean-local:
+       rm -rf gcl.script unixport/gcl.script #FIXME
+       rm -rf h/config.h #FIXME
+-info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\
+-                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
+-                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
+-                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
+-      touch $@
+-
+-info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\
+-                      number sequence character list io form compile \
+-                      symbol system structure iteration user-interface doc type internal c-interface \
+-                      si-defs debug misc compiler-defs japi))
+-      touch $@
+-
+-info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control))
+-      touch $@
+-
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre18"
++"Version_2_7_2pre19"
+--- gcl27-2.7.1.orig/info/c-interface.texi
++++ gcl27-2.7.1/info/c-interface.texi
+@@ -21,7 +21,7 @@ which reference other libraries, but in
+ portable.
+-@node External Shared Libraries,  , C Interface, C Interface
++@node External Shared Libraries,  , Available Symbols, C Interface
+ @section External Shared Libraries
+ @deffn {Macro} DEFDLFUN
+--- gcl27-2.7.1.orig/info/chap-4.texi
++++ gcl27-2.7.1/info/chap-4.texi
+@@ -88,26 +88,25 @@ the sections specified in @i{Figure~4--1
+ that are particularly relevant to the object system.
+ @i{Figure~9--1} lists the defined @i{condition} @i{types}.
+-@format
+-@group
+-@noindent
+-@w{  @b{Section}                                Data Type                         }
+-@w{  _________________________________________________________________________}
+-@w{  @ref{Classes}                        Object System types               }
+-@w{  @ref{Slots}                          Object System types               }
+-@w{  @ref{Objects}                        Object System types               }
+-@w{  @ref{Generic Functions and Methods}  Object System types               }
+-@w{  @ref{Condition System Concepts}      Condition System types            }
+-@w{  @ref{Types and Classes}              Miscellaneous types               }
+-@w{  @ref{Syntax}                         All types---read and print syntax  }
+-@w{  @ref{The Lisp Printer}               All types---print syntax           }
+-@w{  @ref{Compilation}                    All types---compilation issues     }
++@sp 1
+ @noindent
+-@w{           Figure 4--1: Cross-References to Data Type Information          }
++@multitable @columnfractions .53 .47
++@headitem Section @tab Data Type
++@item @ref{Classes} @tab Object System types
++@item @ref{Slots} @tab Object System types
++@item @ref{Objects} @tab Object System types
++@item @ref{Generic Functions and Methods} @tab Object System types
++@item @ref{Condition System Concepts} @tab Condition System types
++@item @ref{Types and Classes} @tab Miscellaneous types
++@item @ref{Syntax} @tab All types---read and print syntax
++@item @ref{The Lisp Printer} @tab All types---print syntax
++@item @ref{Compilation} @tab All types---compilation issues
++@end multitable
++
++@sp 1
++@center Figure 4--1: Cross-References to Data Type Information
+-@end group
+-@end format
+ @node Type Relationships, Type Specifiers, Data Type Definition, Types
+ @subsection Type Relationships
+--- gcl27-2.7.1.orig/info/control.texi
++++ gcl27-2.7.1/info/control.texi
+@@ -926,7 +926,7 @@ At any given time, the only menus availa
+ are those associated with the top-level window containing the
+ input focus.
+ Menu traversal is initiated by one of the following actions:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ If <F10> is typed, then the first menu button in the list for the
+@@ -950,7 +950,7 @@ its first entry.
+ Once a menu has been posted, the input focus is switched to that
+ menu and the following actions are possible:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ Typing <ESC> or clicking mouse button 1 outside the menu button or
+@@ -2046,7 +2046,7 @@ This area is called the @i{cavity};  for
+ is the entire area of the master.
+ For each slave the packer carries out the following steps:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ The packer allocates a rectangular @i{parcel} for the slave
+--- gcl27-2.7.1.orig/info/gcl-si.texi
++++ gcl27-2.7.1/info/gcl-si.texi
+@@ -39,8 +39,8 @@ END-INFO-DIR-ENTRY
+ @center @titlefont{GCL SI Manual}
+ @end titlepage
+-@node Top, Numbers, (dir), (dir)
+-@top
++@node Top
++@top Top
+ @menu
+ * Numbers::                   
+@@ -67,6 +67,7 @@ END-INFO-DIR-ENTRY
+ * Function Index::     
+ * Variable Index::     
++@detailmenu
+  --- The Detailed Node Listing ---
+ Operating System
+@@ -96,6 +97,7 @@ Miscellaneous
+ * Environment::                       
+ * Inititialization::          
+ * Low Level X Interface::     
++@end detailmenu
+ @end menu
+ @include number.texi
+--- gcl27-2.7.1.orig/info/gcl-tk.info
++++ gcl27-2.7.1/info/gcl-tk.info
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+--- gcl27-2.7.1.orig/info/gcl-tk.info-1
++++ gcl27-2.7.1/info/gcl-tk.info-1
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+--- gcl27-2.7.1.orig/info/gcl-tk.info-2
++++ gcl27-2.7.1/info/gcl-tk.info-2
+@@ -1,4 +1,4 @@
+-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi.
++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi.
+ This is a Texinfo GCL TK Manual
+--- gcl27-2.7.1.orig/info/gcl-tk.texi
++++ gcl27-2.7.1/info/gcl-tk.texi
+@@ -28,14 +28,15 @@ END-INFO-DIR-ENTRY
+ @center @titlefont{GCL TK Manual}
+ @end titlepage
+-@node Top, General, (dir), (dir)
+-@top
++@node Top
++@top Top
+ @menu
+ * General::                     
+ * Widgets::                     
+ * Control::                     
++@detailmenu
+  --- The Detailed Node Listing ---
+ General
+@@ -94,6 +95,7 @@ Control
+ * update::                    
+ * winfo::                     
+ * wm::                                
++@end detailmenu
+ @end menu
+ @include general.texi
+--- gcl27-2.7.1.orig/info/gcl.texi
++++ gcl27-2.7.1/info/gcl.texi
+@@ -43,7 +43,8 @@ END-INFO-DIR-ENTRY
+ @c @defcodeindex IK 
+ @c Keyword Index
+-@node Top, Introduction (Introduction), (dir), (dir)
++@node Top
++@top Top
+ @menu
+ * Introduction (Introduction)::        
+@@ -74,6 +75,7 @@ END-INFO-DIR-ENTRY
+ * Glossary (Glossary)::               
+ * Appendix::                  
++@detailmenu
+  --- The Detailed Node Listing ---
+ Introduction
+@@ -2017,6 +2019,7 @@ Removed Language Features
+ * Removed Variables::         
+ * Removed Reader Syntax::     
+ * Packages No Longer Required::        
++@end detailmenu
+ @end menu
+ @c includes
+--- gcl27-2.7.1.orig/info/si-defs.texi
++++ gcl27-2.7.1/info/si-defs.texi
+@@ -441,7 +441,7 @@ a lisp variable indicating the TYPE whic
+ Package:SI
+ Returns 6 values:
+-@table @asis{}
++@table @asis
+ @item nfree
+ number free 
+ @item npages
+--- gcl27-2.7.1.orig/info/system.texi
++++ gcl27-2.7.1/info/system.texi
+@@ -429,7 +429,7 @@ be any non-negative, non-complex number.
+ @end defun
+-@node Environment Variables, Operating System Definitions, Operating System, Operating System
++@node Environment Variables, , Operating System Definitions, Operating System
+ @section Environment Variables
+ Several environment variables affect GCL:
+--- gcl27-2.7.1.orig/info/widgets.texi
++++ gcl27-2.7.1/info/widgets.texi
+@@ -210,7 +210,7 @@ This command is ignored if the button's
+ Tk automatically creates class bindings for buttons that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ The button activates whenever the mouse passes over it and deactivates
+@@ -414,7 +414,7 @@ element of the listbox.  Returns an empt
+ Tk automatically creates class bindings for listboxes that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ When button 1 is pressed over a listbox, the element underneath the
+@@ -2482,7 +2482,7 @@ window of the topmost pixel in the entry
+ Tk automatically creates class bindings for menus that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ When the mouse cursor enters a menu, the entry underneath the mouse
+@@ -2949,7 +2949,7 @@ modifying its associated variable to ref
+ Tk automatically creates class bindings for check buttons that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ The check button activates whenever the mouse passes over it and deactivates
+@@ -3145,7 +3145,7 @@ use ``@i{pathName }@b{:configure :state
+ Tk automatically creates class bindings for menu buttons that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ A menu button activates whenever the mouse passes over it and deactivates
+@@ -3560,7 +3560,7 @@ Text widgets support the standard X sele
+ Selection support is implemented via tags.
+ If the @b{exportSelection} option for the text widget is true
+ then the @b{sel} tag will be associated with the selection:
+-@itemize  @asis
++@itemize  @asis{}
+ @item
+ [1]
+ Whenever characters are tagged with @b{sel} the text widget
+@@ -3892,7 +3892,7 @@ If the @b{:pickplace}@r{ option isn't sp
+ appear at the top of the window.
+ If @b{:pickplace} is specified then the widget chooses where
+ @i{what} appears in the window:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ If @i{what} is already visible somewhere in the window then the
+@@ -3920,7 +3920,7 @@ This command returns an empty string.
+ Tk automatically creates class bindings for texts that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ Pressing mouse button 1 in an text positions the insertion cursor
+@@ -4217,7 +4217,7 @@ at the left edge of the window.  Returns
+ Tk automatically creates class bindings for entries that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ Clicking mouse button 1 in an entry positions the insertion cursor
+@@ -4908,7 +4908,7 @@ to this widget.
+ Tk automatically creates class bindings for radio buttons that give them
+ the following default behavior:
+-@itemize @asis
++@itemize @asis{}
+ @item
+ [1]
+ The radio button activates whenever the mouse passes over it and deactivates
diff --git a/debian/patches/Version_2_7_2pre2 b/debian/patches/Version_2_7_2pre2
new file mode 100644 (file)
index 0000000..12d0bd8
--- /dev/null
@@ -0,0 +1,2242 @@
+Description: Update to git tag Version_2_7_2pre2
+ Git tag update
+Forwarded: not-needed
+Author: Camm Maguire <camm@debian.org>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -1,4 +1,5 @@
+-export C_INCLUDE_PATH=$(srcdir)/h:$(srcdir)/gcl-tk
++C_INCLUDE_PATH:=$(srcdir)/h:$(srcdir)/gcl-tk:$(C_INCLUDE_PATH)
++export C_INCLUDE_PATH
+ AM_CPPFLAGS=$(BASE_CPPFLAGS)
+ AM_CFLAGS=$(BASE_CFLAGS)
+@@ -244,14 +245,14 @@ unixport/saved_%: | unixport/raw_% unixp
+               ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \
+               mkdir h && \
+               ln -snf ../../h/cmpinclude.h h/ && \
+-              GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+-                      ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ \
+-                          < <(cat ../unixport/init_raw.lsp <(echo "(system:save-system \"../$@\")")) && \
+-              rm -f ../unixport/gcl_cmpnopt.lsp
++              echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \
++                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
++                              ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
++              rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
+       rm -rf sb_$*
+ unixport/raw_%: unixport/lib%.a
+-      $(CC) $(AM_LDFLAGS) -rdynamic -Wl,-z,relro $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
++      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -309,7 +310,7 @@ unixport/mod_gcl:  | unixport/saved_mod_
+ unixport/pcl_gcl:  | unixport/saved_mod_gcl
+ unixport/ansi_gcl:  | unixport/saved_pcl_gcl
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+-      $(word 2,$|) < <(cat $< <(echo "(system:save-system \"$@\")"))
++      echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
+ $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+@@ -434,16 +435,16 @@ CMPINCLUDE_FILES=h/cmpincl1.h h/gclincl.
+ CLEANFILES+=h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h
+ h/mstdint.h:
+-      echo "#include <stdint.h>" | $(CC) -E -I./h/ - | $(AWK) '/fsid/ {next} {print}' >$@
++      echo "#include <stdint.h>" | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+-      $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -P -I./h/ - |\
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - |\
+       $(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@
+ h/cmpincludea.h: $(filter-out gclincl.h,$(CMPINCLUDE_FILES)) | h/gclincl.h # FIXME!
+       cat $< $| $(filter-out $<,$^) | \
+-              $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -I./h/ - | \
++              $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+@@ -454,7 +455,7 @@ h/cmpinclude.h: h/mcompdefs.h h/cmpinclu
+ h/new_decl.h: $(INI_FILES)
+       echo '#include "make-decl.h"' > foo.c
+       cat $^ |sed 's,DEFBFUN,DEFUN,g' >> foo.c
+-      $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) foo.c | sed -n -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@
+       rm -f foo.c
+ o/boot.h: %.h: %.ini
+@@ -472,7 +473,7 @@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H
+ # parallel builds can only have one target accessing an intermediate file
+ # solved with BUILT_SOURCES
+ o/%.ini:  o/%.c | o/grab_defs
+-      @$(CPP) $(AM_CPPFLAGS) -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
++      @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+       @rm -f new_$(@F)
+@@ -483,6 +484,16 @@ o/new_init.c: $(INI_FILES)
+       echo '}' >> $@
+       ! cat $@ | awk -F, '/DEFUN/ {print $$1,$$2}' | grep -v object || (rm $@ && false)
++sbr_ansi-tests/random_test: ansi-tests | unixport/saved_ansi_gcl
++      [ -d $(@D) ] || (mkdir $(@D) && cp $</*.lsp $(@D)) # FIXME testsuite in separate directory, hard
++      cd $(@D) && \
++      echo "(load \"gclload1\")" \
++           "(compile-and-load \"random-int-form.lsp\")" \
++           "(in-package :cl-test)" \
++           "(let ((*random-state* (make-random-state t))) \
++                    (test-random-integer-forms 100 4 10000))" | \
++              GCL_MEM_BOUND=29 ../$| | tee $(@F) #FIXME MEM_BOUND
++
+ sb_ansi-tests/test_results: ansi-tests | unixport/saved_ansi_gcl
+       [ -d $(@D) ] || (mkdir $(@D) && cp $</*.lsp $(@D)) # FIXME testsuite in separate directory, hard
+       cd $(@D) && echo '(load "gclload")' | ../$| |tee $(@F)
+@@ -577,7 +588,7 @@ clean_%:
+       rm -rf $* $(addprefix unixport/,$* lib$*.a saved_$* sys_$*.o gcl_cmpnopt_$*.lsp)
+ clean-local: $(addprefix clean_,pre_gcl $(MY_DIRS) gcl_gprof ansi_gcl_gprof)
+-      rm -rf sb_ansi-tests sb_cmpnew sb_bench
++      rm -rf sb_ansi-tests sbr_ansi-tests sb_cmpnew sb_bench
+ distclean-local:
+       rm -rf gcl.script unixport/gcl.script #FIXME
+@@ -588,3 +599,18 @@ AM_ETAGSFLAGS=--regex='/[ \n\t\#\.`]*(de
+             --regex='/[ \n\t\#\.`]*(defmfun[ \n\t]+"[^ \n\t"]+"[ \n\t]+\([^ \n\t]+\)/\1/'
+ TAGS_FILES=lsp/*.lsp cmpnew/*.lsp mod/*.lsp pcl/*sp clcs/*sp xgcl-2/*p
++
++info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\
++                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
++                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
++                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
++      touch $@
++
++info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\
++                      number sequence character list io form compile \
++                      symbol system structure iteration user-interface doc type internal c-interface \
++                      si-defs debug misc compiler-defs japi))
++      touch $@
++
++info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control))
++      touch $@
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -683,7 +683,6 @@ distcleancheck_listfiles = \
+   find . \( -type f -a \! \
+             \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print
+ ACLOCAL = @ACLOCAL@
+-ALLOCA = @ALLOCA@
+ AMTAR = @AMTAR@
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+ AUTOCONF = @AUTOCONF@
+@@ -839,6 +838,7 @@ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
++C_INCLUDE_PATH := $(srcdir)/h:$(srcdir)/gcl-tk:$(C_INCLUDE_PATH)
+ AM_CPPFLAGS = $(BASE_CPPFLAGS)
+ AM_CFLAGS = $(BASE_CFLAGS)
+ AM_LDFLAGS = $(BASE_LDFLAGS)
+@@ -4528,7 +4528,7 @@ uninstall-man: uninstall-man1
+ .PRECIOUS: Makefile
+-export C_INCLUDE_PATH=$(srcdir)/h:$(srcdir)/gcl-tk
++export C_INCLUDE_PATH
+ unixport/saved_gcl$(EXEEXT):
+ unixport/saved_ansi_gcl$(EXEEXT):
+ unixport/saved_gcl_gprof$(EXEEXT):
+@@ -4549,14 +4549,14 @@ unixport/saved_%: | unixport/raw_% unixp
+               ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \
+               mkdir h && \
+               ln -snf ../../h/cmpinclude.h h/ && \
+-              GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+-                      ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ \
+-                          < <(cat ../unixport/init_raw.lsp <(echo "(system:save-system \"../$@\")")) && \
+-              rm -f ../unixport/gcl_cmpnopt.lsp
++              echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \
++                      GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \
++                              ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
++              rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue
+       rm -rf sb_$*
+ unixport/raw_%: unixport/lib%.a
+-      $(CC) $(AM_LDFLAGS) -rdynamic -Wl,-z,relro $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
++      $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+@@ -4609,7 +4609,7 @@ unixport/mod_gcl:  | unixport/saved_mod_
+ unixport/pcl_gcl:  | unixport/saved_mod_gcl
+ unixport/ansi_gcl:  | unixport/saved_pcl_gcl
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+-      $(word 2,$|) < <(cat $< <(echo "(system:save-system \"$@\")"))
++      echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
+ $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+@@ -4726,16 +4726,16 @@ ansi_gcl/%.o: clcs/%.lisp | unixport/ans
+       cat $*.data >>$@
+ h/mstdint.h:
+-      echo "#include <stdint.h>" | $(CC) -E -I./h/ - | $(AWK) '/fsid/ {next} {print}' >$@
++      echo "#include <stdint.h>" | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+-      $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -P -I./h/ - |\
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - |\
+       $(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@
+ h/cmpincludea.h: $(filter-out gclincl.h,$(CMPINCLUDE_FILES)) | h/gclincl.h # FIXME!
+       cat $< $| $(filter-out $<,$^) | \
+-              $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -I./h/ - | \
++              $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+@@ -4746,7 +4746,7 @@ h/cmpinclude.h: h/mcompdefs.h h/cmpinclu
+ h/new_decl.h: $(INI_FILES)
+       echo '#include "make-decl.h"' > foo.c
+       cat $^ |sed 's,DEFBFUN,DEFUN,g' >> foo.c
+-      $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) foo.c | sed -n -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@
+       rm -f foo.c
+ o/boot.h: %.h: %.ini
+@@ -4762,7 +4762,7 @@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H
+ # parallel builds can only have one target accessing an intermediate file
+ # solved with BUILT_SOURCES
+ o/%.ini:  o/%.c | o/grab_defs
+-      @$(CPP) $(AM_CPPFLAGS) -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
++      @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+       @rm -f new_$(@F)
+@@ -4773,6 +4773,16 @@ o/new_init.c: $(INI_FILES)
+       echo '}' >> $@
+       ! cat $@ | awk -F, '/DEFUN/ {print $$1,$$2}' | grep -v object || (rm $@ && false)
++sbr_ansi-tests/random_test: ansi-tests | unixport/saved_ansi_gcl
++      [ -d $(@D) ] || (mkdir $(@D) && cp $</*.lsp $(@D)) # FIXME testsuite in separate directory, hard
++      cd $(@D) && \
++      echo "(load \"gclload1\")" \
++           "(compile-and-load \"random-int-form.lsp\")" \
++           "(in-package :cl-test)" \
++           "(let ((*random-state* (make-random-state t))) \
++                    (test-random-integer-forms 100 4 10000))" | \
++              GCL_MEM_BOUND=29 ../$| | tee $(@F) #FIXME MEM_BOUND
++
+ sb_ansi-tests/test_results: ansi-tests | unixport/saved_ansi_gcl
+       [ -d $(@D) ] || (mkdir $(@D) && cp $</*.lsp $(@D)) # FIXME testsuite in separate directory, hard
+       cd $(@D) && echo '(load "gclload")' | ../$| |tee $(@F)
+@@ -4862,12 +4872,27 @@ clean_%:
+       rm -rf $* $(addprefix unixport/,$* lib$*.a saved_$* sys_$*.o gcl_cmpnopt_$*.lsp)
+ clean-local: $(addprefix clean_,pre_gcl $(MY_DIRS) gcl_gprof ansi_gcl_gprof)
+-      rm -rf sb_ansi-tests sb_cmpnew sb_bench
++      rm -rf sb_ansi-tests sbr_ansi-tests sb_cmpnew sb_bench
+ distclean-local:
+       rm -rf gcl.script unixport/gcl.script #FIXME
+       rm -rf h/config.h #FIXME
++info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\
++                      chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \
++                      chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \
++                      chap-22 chap-23 chap-24 chap-25 chap-26 chap-a))
++      touch $@
++
++info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\
++                      number sequence character list io form compile \
++                      symbol system structure iteration user-interface doc type internal c-interface \
++                      si-defs debug misc compiler-defs japi))
++      touch $@
++
++info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control))
++      touch $@
++
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp
+@@ -162,113 +162,28 @@
+ ;; (defmacro referred-length (info)
+ ;;   `(length (info-ref ,info)))
+-(defun imerge (x y list)
+-  (nunion x (intersection y list :test 'eq) :test 'eq))
+-(declaim (inline imerge))
++(declaim (inline in-env-p))
++(defun in-env-p (x)
++  (typecase x
++    (symbol t)
++    (structure (or (member x *vars*) (member x *blocks*) (member x *tags*) (member x *funs*)))))
+ (defun add-info (to-info from-info)
+   ;; Allow nil from-info without error CM 20031030
+   (unless from-info (return-from add-info to-info))
+-  (macrolet ((mrg (field) `(let* ((r (,field from-info))) 
+-                            (when r
+-                              (setf (,field to-info) (imerge (,field to-info) r *vars*)
+-                                    (,field to-info) (imerge (,field to-info) r *blocks*)
+-                                    (,field to-info) (imerge (,field to-info) r *tags*)
+-                                    (,field to-info) (imerge (,field to-info) r *funs*))))))
++  (macrolet ((mrg (field)
++             `(setf (,field to-info)
++                    (union (,field to-info)
++                           (remove-if-not 'in-env-p (,field from-info))
++                           :test 'eq))))
+           (mrg info-ch)
+           (mrg info-ref-ccb)
+           (mrg info-ref-clb)
+           (mrg info-ref))
+   (setf (info-flags to-info) (logior (info-flags to-info) (info-flags from-info)))
+-  (setf (info-ref to-info) (nunion (info-ref to-info) (remove-if-not 'symbolp (info-ref from-info))));FIXME nunion asym
+   (setf (info-ch-ccb to-info) (nunion (info-ch-ccb to-info) (info-ch-ccb from-info)))
+   to-info)
+-;; (defun add-info (to-info from-info)
+-;;   ;; Allow nil from-info without error CM 20031030
+-;;   (unless from-info (return-from add-info to-info))
+-;;   (macrolet ((mrg (field scrn) `(let* ((r (,field from-info))) (when r (setf (,field to-info) (imerge (,field to-info) r ,scrn)))))
+-;;         (mrg1 (field) `(let* ((r (,field from-info))) 
+-;;                          (when r
+-;;                            (setf (,field to-info) (imerge (,field to-info) r *vars*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *blocks*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *tags*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *funs*))))))
+-;;        (mrg  info-ch        *vars*)
+-;;        (mrg1 info-ref-ccb)
+-;;        (mrg1 info-ref-clb)
+-;;        (mrg1 info-ref))
+-;;   (when (/= (info-sp-change from-info) 0) (setf (info-sp-change to-info) 1))
+-;;   (setf (info-flags to-info) (logior (info-flags to-info) (info-flags from-info)))
+-;;   to-info)
+-
+-;; (defun add-info (to-info from-info)
+-;;   ;; Allow nil from-info without error CM 20031030
+-;;   (unless from-info (return-from add-info to-info))
+-;;   (macrolet ((mrg (field scrn) `(let* ((r (,field from-info))) (when r (setf (,field to-info) (imerge (,field to-info) r ,scrn)))))
+-;;         (mrg1 (field) `(let* ((r (,field from-info))) 
+-;;                          (when r
+-;;                            (setf (,field to-info) (imerge (,field to-info) r *vars*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *blocks*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *tags*)
+-;;                                  (,field to-info) (imerge (,field to-info) r *funs*))))))
+-;;        (mrg info-ref       *vars*)
+-;;        (mrg info-ch        *vars*)
+-;;        (mrg info-blocks    *blocks*)
+-;;        (mrg info-tags      *tags*)
+-;;        (when *make-fast-ref*
+-;;          (mrg1 info-vref-ccb)
+-;;          (mrg1 info-vref-clb)
+-;;          (mrg1 info-vref)))
+-;;   (when (/= (info-sp-change from-info) 0) (setf (info-sp-change to-info) 1))
+-;;   (setf (info-flags to-info) (logior (info-flags to-info) (info-flags from-info)))
+-;;   to-info)
+-
+-;; (defun add-info (to-info from-info)
+-;;   ;; Allow nil from-info without error CM 20031030
+-;;   (unless from-info (return-from add-info to-info))
+-;;   (macrolet ((mrg (field scrn) `(let* ((r (,field from-info))) (when r (setf (,field to-info) (imerge (,field to-info) r ,scrn))))))
+-;;        (mrg info-ref       *vars*)
+-;;        (mrg info-ch        *vars*)
+-;;        (mrg info-blocks    *blocks*)
+-;;        (mrg info-tags      *tags*)
+-;;        (mrg info-vref-ccb  *vars*)
+-;;        (mrg info-vref-clb  *vars*)
+-;;        (mrg info-vref      *vars*)
+-;;        (mrg info-bref-ccb  *blocks*)
+-;;        (mrg info-bref-clb  *blocks*)
+-;;        (mrg info-bref      *blocks*)
+-;;        (mrg info-tref-ccb  *tags*)
+-;;        (mrg info-tref-clb  *tags*)
+-;;        (mrg info-tref      *tags*)
+-;;        (mrg info-fref-ccb  *funs*)
+-;; ;      (mrg info-fref-clb  *funs*)
+-;;        (mrg info-fref      *funs*))
+-;;   (when (/= (info-sp-change from-info) 0) (setf (info-sp-change to-info) 1))
+-;;   (setf (info-flags to-info) (logior (info-flags to-info) (info-flags from-info)))
+-;;   to-info)
+-
+-;;   (setf (info-ref to-info) (imerge (info-ref to-info) (info-ref from-info) *vars*)
+-;;    (info-ch to-info)  (imerge (info-ch to-info)  (info-ch from-info) *vars*)
+-;;    (info-blocks to-info) (imerge (info-blocks to-info) (info-blocks from-info) *blocks*)
+-;;    (info-tags to-info) (imerge (info-tags to-info) (info-tags from-info) *tags*)
+-;;    (info-vref-ccb to-info) (imerge (info-vref-ccb to-info) (info-vref-ccb from-info) *vars*)
+-;;    (info-vref-clb to-info) (imerge (info-vref-clb to-info) (info-vref-clb from-info) *vars*)
+-;;    (info-vref to-info) (imerge (info-vref to-info) (info-vref from-info) *vars*)
+-;;    (info-bref-ccb to-info) (imerge (info-bref-ccb to-info) (info-bref-ccb from-info) *blocks*)
+-;;    (info-bref-clb to-info) (imerge (info-bref-clb to-info) (info-bref-clb from-info) *blocks*)
+-;;    (info-bref to-info) (imerge (info-bref to-info) (info-bref from-info) *blocks*)
+-;;    (info-tref-ccb to-info) (imerge (info-tref-ccb to-info) (info-tref-ccb from-info) *tags*)
+-;;    (info-tref-clb to-info) (imerge (info-tref-clb to-info) (info-tref-clb from-info) *tags*)
+-;;    (info-tref to-info) (imerge (info-tref to-info) (info-tref from-info) *tags*)
+-;;    (info-fref-ccb to-info) (imerge (info-fref-ccb to-info) (info-fref-ccb from-info) *funs*)
+-;; ;  (info-fref-clb to-info) (imerge (info-fref-clb to-info) (info-fref-clb from-info) *funs*)
+-;;    (info-fref to-info) (imerge (info-fref to-info) (info-fref from-info) *funs*)
+-;;    )
+-;;   (when (/= (info-sp-change from-info) 0) (setf (info-sp-change to-info) 1))
+-;;   (setf (info-flags to-info) (logior (info-flags to-info) (info-flags from-info)))
+-;;   to-info)
+-
+ (defconstant +c1nil+ (list 'LOCATION (make-info :type (object-type nil)) nil))
+ (defmacro c1nil () `+c1nil+)
+ (defconstant +c1t+ (list 'LOCATION (make-info :type (object-type t)) t))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp
+@@ -707,31 +707,6 @@ Cannot compile ~a.~%" (namestring (merge
+          do (setq m (si::fread tem 0 n st-b))
+          while (and m (> m 0))
+          do (si::fwrite tem 0 m st-a))))))
+-
+-#+dos
+-(progn
+-(defun directory (x &aux ans)
+-  (let* ((pa (pathname x))
+-       (temp "XXDIR")
+-       tem
+-       (name (pathname-name pa)))
+-    (setq pa (make-pathname :directory (pathname-directory pa)
+-                          :name (or (pathname-name pa) :wild)
+-                          :type (pathname-type pa)))
+-    (setq name (namestring pa))
+-    (safe-system (format nil "ls -d ~a > ~a" name temp))
+-    (with-open-file (st temp)
+-          (loop (setq tem (read-line st nil nil))
+-                (if (and tem (setq tem (probe-file tem)))
+-                    (push tem ans) (return))))
+-    ans))
+-
+-
+-(defun user-homedir-pathname ()
+-  (or (si::getenv "HOME") "/"))
+-
+-)
+-
+ ;
+ ;  These functions are added to build custom images requiring
+ ;  the loading of binary objects on systems relocating with dlopen.
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -664,7 +664,6 @@ BASE_CFLAGS
+ NIFLAGS
+ FINAL_CFLAGS
+ BASE_LDFLAGS
+-ALLOCA
+ EXT
+ TCL_LIB_SPEC
+ TK_LIB_SPEC
+@@ -2189,65 +2188,6 @@ printf "%s\n" "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_check_decl
+-
+-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+-# -------------------------------------------
+-# Tests whether TYPE exists after having included INCLUDES, setting cache
+-# variable VAR accordingly.
+-ac_fn_c_check_type ()
+-{
+-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+-printf %s "checking for $2... " >&6; }
+-if eval test \${$3+y}
+-then :
+-  printf %s "(cached) " >&6
+-else case e in #(
+-  e) eval "$3=no"
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-$4
+-int
+-main (void)
+-{
+-if (sizeof ($2))
+-       return 0;
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"
+-then :
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-$4
+-int
+-main (void)
+-{
+-if (sizeof (($2)))
+-          return 0;
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"
+-then :
+-
+-else case e in #(
+-  e) eval "$3=yes" ;;
+-esac
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+-esac
+-fi
+-eval ac_res=\$$3
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
+-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+-
+-} # ac_fn_c_check_type
+ ac_configure_args_raw=
+ for ac_arg
+ do
+@@ -7155,9 +7095,10 @@ add_args_to_cflags  -fsigned-char -pipe
+                   -std=gnu17 \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+-                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
++                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
++                  -fbracket-depth=512
+-add_args_to_ldflags -no-pie # -Wl,-z,lazy
++add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5
+ printf %s "checking for inline semantics... " >&6; }
+@@ -9600,10 +9541,11 @@ else case e in #(
+               #include <unistd.h>
+               int
+               main(int argc,char **argv,char **envp) {
+-                  FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r");
++                  FILE *fp = fopen("conftest1","w"),*f;
+                   unsigned long i,j;
+                   char b[4096];
+                   i=(unsigned long)alloca(sizeof(void *));
++                  f=fopen("/proc/self/maps","r");
+                   for (j=0;j<i && fgets(b,sizeof(b),f);)
+                       sscanf(b,"%x-",&j);
+                   j-=1;
+@@ -9648,11 +9590,12 @@ else case e in #(
+               #include <errno.h>
+               int
+               main(int argc,char **argv,char **envp) {
+-                  FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r");
++                  FILE *fp = fopen("conftest1","w"),*f;
+                   unsigned long i,j;
+                   char b[4096],*stack_map_base;
+                   #include "$srcdir/h/cstack.h"
+                   i=(unsigned long)alloca(sizeof(void *));
++                  f=fopen("/proc/self/maps","r");
+                   for (j=0;j<i && fgets(b,sizeof(b),f);)
+                       sscanf(b,"%x-",&j);
+                   j-=1;
+@@ -9911,30 +9854,8 @@ printf "%s\n" "bfd_arch_${output_arch}"
+           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ printf "%s\n" "not found" >&6; }
+       fi
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking output_mach" >&5
+-printf %s "checking output_mach... " >&6; }
+-      output_mach=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f2 -d:|tr '-' '_'|tr -d '.'`;
+-    if test "$output_mach" = "common" ; then #FIXME
+-         output_mach=""
+-      fi
+-      defaulted=""
+-    if test "$output_mach" = "" ; then
+-              if test "$output_arch" = "i386" ; then
+-                 output_mach="i386_i386";
+-                 defaulted="(defaulted)"
+-              fi
+-      fi
+-      if test "$output_mach" != "" ; then
+-
+-printf "%s\n" "#define OUTPUT_MACH bfd_mach_${output_mach}" >>confdefs.h
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $defaulted bfd_mach_${output_mach}" >&5
+-printf "%s\n" "$defaulted bfd_mach_${output_mach}" >&6; }
+-      else
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-printf "%s\n" "not found" >&6; }
+-      fi
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5
+ printf "%s\n" "$as_me: trying to adjust text start" >&6;}
+@@ -11372,6 +11293,75 @@ if test "x$ac_cv_header_dis_asm_h" = xye
+ then :
+   printf "%s\n" "#define HAVE_DIS_ASM_H 1" >>confdefs.h
+  MLIBS=$LIBS
++
++# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
++# -------------------------------------------
++# Tests whether TYPE exists after having included INCLUDES, setting cache
++# variable VAR accordingly.
++ac_fn_c_check_type ()
++{
++  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++printf %s "checking for $2... " >&6; }
++if eval test \${$3+y}
++then :
++  printf %s "(cached) " >&6
++else case e in #(
++  e) eval "$3=no"
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++$4
++int
++main (void)
++{
++if (sizeof ($2))
++       return 0;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"
++then :
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++$4
++int
++main (void)
++{
++if (sizeof (($2)))
++          return 0;
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"
++then :
++
++else case e in #(
++  e) eval "$3=yes" ;;
++esac
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
++esac
++fi
++eval ac_res=\$$3
++             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf "%s\n" "$ac_res" >&6; }
++  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++
++} # ac_fn_c_check_type
++ac_fn_c_check_type "$LINENO" "fprintf_styled_ftype" "ac_cv_type_fprintf_styled_ftype" "#include <dis-asm.h>
++"
++if test "x$ac_cv_type_fprintf_styled_ftype" = xyes
++then :
++
++printf "%s\n" "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h
++
++
++fi
++
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5
+ printf %s "checking for init_disassemble_info in -lopcodes... " >&6; }
+ if test ${ac_cv_lib_opcodes_init_disassemble_info+y}
+@@ -11670,171 +11660,6 @@ then :
+ fi
+-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+-if test "x$ac_cv_type_size_t" = xyes
+-then :
+-
+-else case e in #(
+-  e)
+-printf "%s\n" "#define size_t unsigned int" >>confdefs.h
+- ;;
+-esac
+-fi
+-
+-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+-# for constant arguments.  Useless!
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+-printf %s "checking for working alloca.h... " >&6; }
+-if test ${ac_cv_working_alloca_h+y}
+-then :
+-  printf %s "(cached) " >&6
+-else case e in #(
+-  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-#include <alloca.h>
+-int
+-main (void)
+-{
+-char *p = (char *) alloca (2 * sizeof (int));
+-                        if (p) return 0;
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"
+-then :
+-  ac_cv_working_alloca_h=yes
+-else case e in #(
+-  e) ac_cv_working_alloca_h=no ;;
+-esac
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+-    conftest$ac_exeext conftest.$ac_ext ;;
+-esac
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
+-printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
+-if test $ac_cv_working_alloca_h = yes; then
+-
+-printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
+-
+-fi
+-
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+-printf %s "checking for alloca... " >&6; }
+-if test ${ac_cv_func_alloca_works+y}
+-then :
+-  printf %s "(cached) " >&6
+-else case e in #(
+-  e) ac_cv_func_alloca_works=$ac_cv_working_alloca_h
+-if test "$ac_cv_func_alloca_works" != yes
+-then :
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-#include <stddef.h>
+-#ifndef alloca
+-# ifdef __GNUC__
+-#  define alloca __builtin_alloca
+-# elif defined _MSC_VER
+-#  include <malloc.h>
+-#  define alloca _alloca
+-# else
+-#  ifdef  __cplusplus
+-extern "C"
+-#  endif
+-void *alloca (size_t);
+-# endif
+-#endif
+-
+-int
+-main (void)
+-{
+-char *p = (char *) alloca (1);
+-                                  if (p) return 0;
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"
+-then :
+-  ac_cv_func_alloca_works=yes
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam \
+-    conftest$ac_exeext conftest.$ac_ext
+-fi ;;
+-esac
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
+-printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
+-
+-if test $ac_cv_func_alloca_works = yes; then
+-
+-printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
+-
+-else
+-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+-# that cause trouble.  Some versions do not even contain alloca or
+-# contain a buggy version.  If you still want to use their alloca,
+-# use ar to extract alloca.o from them instead of compiling alloca.c.
+-
+-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+-
+-printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h
+-
+-
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+-printf %s "checking stack direction for C alloca... " >&6; }
+-if test ${ac_cv_c_stack_direction+y}
+-then :
+-  printf %s "(cached) " >&6
+-else case e in #(
+-  e) if test "$cross_compiling" = yes
+-then :
+-  ac_cv_c_stack_direction=0
+-else case e in #(
+-  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-$ac_includes_default
+-int
+-find_stack_direction (int *addr, int depth)
+-{
+-  int dir, dummy = 0;
+-  if (! addr)
+-    addr = &dummy;
+-  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+-  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+-  return dir + dummy;
+-}
+-
+-int
+-main (int argc, char **argv)
+-{
+-  return find_stack_direction (0, argc + !argv + 20) < 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_run "$LINENO"
+-then :
+-  ac_cv_c_stack_direction=1
+-else case e in #(
+-  e) ac_cv_c_stack_direction=-1 ;;
+-esac
+-fi
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+-  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+-esac
+-fi
+- ;;
+-esac
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
+-printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
+-printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
+-
+-
+-fi
+-
+-
+ #LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`"
+ LDFLAGS="`echo $GPL_FLAG $LDFLAGS`"
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -232,9 +232,10 @@ add_args_to_cflags  -fsigned-char -pipe
+                   -std=gnu17 \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+-                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
++                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
++                  -fbracket-depth=512
+-add_args_to_ldflags -no-pie # -Wl,-z,lazy
++add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+ AC_MSG_CHECKING([for inline semantics])
+ AC_COMPILE_IFELSE(
+@@ -1039,10 +1040,11 @@ if test $cstack_direction -eq 1 ; then
+               #include <unistd.h>
+               int
+               main(int argc,char **argv,char **envp) {
+-                  FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r");
++                  FILE *fp = fopen("conftest1","w"),*f;
+                   unsigned long i,j;
+                   char b[4096];
+                   i=(unsigned long)alloca(sizeof(void *));
++                  f=fopen("/proc/self/maps","r");
+                   for (j=0;j<i && fgets(b,sizeof(b),f);)
+                       sscanf(b,"%x-",&j);
+                   j-=1;
+@@ -1066,11 +1068,12 @@ if test $cstack_direction -eq 1 ; then
+               #include <errno.h>
+               int
+               main(int argc,char **argv,char **envp) {
+-                  FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r");
++                  FILE *fp = fopen("conftest1","w"),*f;
+                   unsigned long i,j;
+                   char b[4096],*stack_map_base;
+                   #include "$srcdir/h/cstack.h"
+                   i=(unsigned long)alloca(sizeof(void *));
++                  f=fopen("/proc/self/maps","r");
+                   for (j=0;j<i && fgets(b,sizeof(b),f);)
+                       sscanf(b,"%x-",&j);
+                   j-=1;
+@@ -1212,25 +1215,28 @@ if test "`cat gcl.script | wc -l`" != "0
+       else
+           AC_MSG_RESULT([not found])
+       fi
+-      AC_MSG_CHECKING([output_mach])
+-      output_mach=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f2 -d:|tr '-' '_'|tr -d '.'`;
+-    if test "$output_mach" = "common" ; then #FIXME
+-         output_mach=""
+-      fi
+-      defaulted=""
+-    if test "$output_mach" = "" ; then
+-              if test "$output_arch" = "i386" ; then
+-                 output_mach="i386_i386";
+-                 defaulted="(defaulted)"
+-              fi
+-      fi
+-      if test "$output_mach" != "" ; then
+-          AC_DEFINE_UNQUOTED(OUTPUT_MACH,bfd_mach_${output_mach},[bfd output mach])
+-          AC_MSG_RESULT([$defaulted bfd_mach_${output_mach}])
+-      else
+-          AC_MSG_RESULT([not found])
+-      fi
++      dnl FIXME this does not work reliably.  Defines added by hand to .h files, but this is fragile.
++      dnl
++      dnl AC_MSG_CHECKING([output_mach])
++      dnl output_mach=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f2 -d:|tr '-' '_'|tr -d '.'`;
++
++      dnl if test "$output_mach" = "common" ; then #FIXME
++      dnl    output_mach=""
++      dnl fi
++      dnl defaulted=""
++      dnl if test "$output_mach" = "" ; then
++      dnl     if test "$output_arch" = "i386" ; then
++      dnl        output_mach="i386_i386";
++      dnl        defaulted="(defaulted)"
++      dnl     fi
++      dnl fi
++      dnl if test "$output_mach" != "" ; then
++      dnl     AC_DEFINE_UNQUOTED(OUTPUT_MACH,bfd_mach_${output_mach},[bfd output mach])
++      dnl     AC_MSG_RESULT([$defaulted bfd_mach_${output_mach}])
++      dnl else
++      dnl     AC_MSG_RESULT([not found])
++      dnl fi
+       AC_MSG_NOTICE([trying to adjust text start])
+       cp gcl.script gcl.script.def
+@@ -1740,6 +1746,7 @@ AC_CHECK_FUNCS(feenableexcept)
+ AC_CHECK_HEADERS(dis-asm.h,
+                MLIBS=$LIBS
++               AC_CHECK_TYPES([fprintf_styled_ftype],[],[],[#include <dis-asm.h>])
+                AC_CHECK_LIB(opcodes,init_disassemble_info)
+                AC_CHECK_LIB(dl,dlopen,#opcodes changes too quickly to link directly
+                             AC_CHECK_FUNCS(print_insn_i386,LIBS="$MLIBS -ldl")))
+@@ -1841,8 +1848,6 @@ AC_CONFIG_FILES([bin/gcl])
+ AC_CHECK_HEADERS(sys/mman.h,AC_CHECK_FUNCS(mprotect))
+ AC_CHECK_HEADERS(alloca.h)
+-AC_FUNC_ALLOCA
+-
+ #LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`"
+ LDFLAGS="`echo $GPL_FLAG $LDFLAGS`"
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2ore1"
++"Version_2_7_2ore2"
+--- /dev/null
++++ gcl27-2.7.1/git_touch
+@@ -0,0 +1,7 @@
++#!/bin/bash
++
++touch aclocal.m4 \
++      configure.ac gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \
++      configure \
++      Makefile.am Makefile.in \
++      info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info
+--- gcl27-2.7.1.orig/h/386-linux.h
++++ gcl27-2.7.1/h/386-linux.h
+@@ -9,3 +9,5 @@
+ #define SGC
+ #define RELOC_H "elf32_i386_reloc.h"
++
++#define OUTPUT_MACH bfd_mach_i386_i386
+--- gcl27-2.7.1.orig/h/386-macosx.h
++++ gcl27-2.7.1/h/386-macosx.h
+@@ -21,23 +21,11 @@
+ #undef HAVE_ELF
+-/** sbrk(2) emulation  */
+-
+ /* Alternatively, we could use the global variable vm_page_size.  */
+ #define PAGEWIDTH 12
+-/* The following value determines the running process heap size.  */
+-/* #define BIG_HEAP_SIZE   0x50000000 */
+-
+-extern char *mach_mapstart;
+-extern char *mach_maplimit;
+-extern char *mach_brkpt;
+-
+-extern char *get_dbegin ();
+ #include <unistd.h> /* to get sbrk defined */
+-extern void *my_sbrk(long incr);
+-#define sbrk my_sbrk
+ /** (si::save-system "...") a.k.a. unexec implementation  */
+@@ -101,36 +89,7 @@ do {
+   sigaction (SIGSEGV, &sact, 0);                        \
+ } while (0);
+-/* si_addr not containing the faulting address is a bug in Darwin.
+-   Work around this by looking at the dar field of the exception state.  */
+ #define GET_FAULT_ADDR(sig,code,sv,a) ((siginfo_t *)code)->si_addr
+-/* #define GET_FAULT_ADDR(sig,code,scp,addr) ((char *) (((ucontext_t *) scp)->uc_mcontext->es.dar)) */
+-
+-/*
+-#include <signal.h>
+-#include <unistd.h>
+-#include <stdio.h>
+-#include <sys/ucontext.h>
+-
+-void handler (int sig, siginfo_t *info, void *scp)
+-{
+-     ucontext_t *uc = (ucontext_t *)scp;
+-     fprintf(stderr, "addr = 0x%08lx\n", uc->uc_mcontext->es.dar);
+-     _exit(99);
+-}
+-
+-int main(void)
+-{
+-     struct sigaction sact;
+-     int ret;
+-
+-     sigfillset(&(sact.sa_mask));
+-     sact.sa_flags = SA_SIGINFO;
+-     sact.sa_sigaction = (void (*)())handler;
+-     ret = sigaction (SIGBUS, &sact, 0);
+-     return *(int *)0x43;
+-}
+-*/
+ /** Misc stuff  */
+@@ -199,3 +158,7 @@ if (realpath (buf, fub) == 0) {
+ #include <sys/param.h>/*PATH_MAX MAXPATHLEN*/
+ #undef MIN
+ #undef MAX
++
++#undef sbrk
++#define sbrk msbrk
++#define INITIALIZE_BRK msbrk_init();
+--- gcl27-2.7.1.orig/h/aarch64-linux.h
++++ gcl27-2.7.1/h/aarch64-linux.h
+@@ -5,3 +5,5 @@
+ #define NEED_STACK_CHK_GUARD
+ #define SGC
++
++#define OUTPUT_MACH bfd_mach_aarch64
+--- gcl27-2.7.1.orig/h/alpha-linux.h
++++ gcl27-2.7.1/h/alpha-linux.h
+@@ -10,3 +10,5 @@
+ /*FIXME probe broken in recent kernels, no access*/
+ /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */
++
++#define OUTPUT_MACH bfd_mach_alpha_ev6
+--- gcl27-2.7.1.orig/h/amd64-linux.h
++++ gcl27-2.7.1/h/amd64-linux.h
+@@ -14,3 +14,5 @@
+ #define MAX_CODE_ADDRESS (1L<<31)/*large memory model broken gcc 4.8*/
+ #define MAX_DEFAULT_MEMORY_MODEL_CODE_ADDRESS (1UL<<31)
+ #define LARGE_MEMORY_MODEL /*working -mcmodel=large giving unrestricted code load addresses*/
++
++#define OUTPUT_MACH bfd_mach_x86_64
+--- gcl27-2.7.1.orig/h/arm-linux.h
++++ gcl27-2.7.1/h/arm-linux.h
+@@ -6,3 +6,5 @@
+ #define SPECIAL_RELOC_H "elf32_arm_reloc_special.h"
+ #define NEED_STACK_CHK_GUARD
++
++#define OUTPUT_MACH bfd_mach_arm_9
+--- gcl27-2.7.1.orig/h/armhf-linux.h
++++ gcl27-2.7.1/h/armhf-linux.h
+@@ -6,3 +6,5 @@
+ #define SPECIAL_RELOC_H "elf32_armhf_reloc_special.h"
+ #define NEED_STACK_CHK_GUARD
++
++#define OUTPUT_MACH bfd_mach_arm_9
+--- gcl27-2.7.1.orig/h/cstack.h
++++ gcl27-2.7.1/h/cstack.h
+@@ -34,17 +34,22 @@
+ {
+   void *p,*p1,*b,*s;
+   int a,f=MAP_FIXED|MAP_PRIVATE|MAP_ANON|MAP_STACK;
++  int ss=
++#ifdef CHECK_FOR_QEMU
++    qemu_p() ? FIXED_STACK :
++#endif
++    SS;
+   p=alloca(1);
+   p1=alloca(1);
+-  b=CTOP-(p1<p ? SS : FIXED_STACK);
++  b=CTOP-(p1<p ? ss : FIXED_STACK);
+   a=p1<p ? p-p1 : p1-p;
+   a<<=2;
+   s=p1<p ? CTOP-a : b+a;
+   if (p1<p) f|=MAP_GROWSDOWN;
+   if (p > CTOP || p < b) {
+-    if (mmap(b,SS,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) {
++    if (mmap(b,ss,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) {
+       stack_map_base=b;
+       asm volatile (SET_STACK_POINTER::"r" (s):"memory");
+       if (p1>p)
+--- gcl27-2.7.1.orig/h/gclincl.h.in
++++ gcl27-2.7.1/h/gclincl.h.in
+@@ -12,9 +12,6 @@
+ /* whether C stack grows up or down */
+ #undef CSTACK_DIRECTION
+-/* Define to 1 if using 'alloca.c'. */
+-#undef C_ALLOCA
+-
+ /* debug safecdr code */
+ #undef DEBUG_SAFE_CDR
+@@ -27,10 +24,7 @@
+ /* using gmp */
+ #undef GMP
+-/* Define to 1 if you have 'alloca', as a function or macro. */
+-#undef HAVE_ALLOCA
+-
+-/* Define to 1 if <alloca.h> works. */
++/* Define to 1 if you have the <alloca.h> header file. */
+ #undef HAVE_ALLOCA_H
+ /* have __builtin__clear_cache instruction */
+@@ -72,6 +66,9 @@
+ /* Define to 1 if you have the <float.h> header file. */
+ #undef HAVE_FLOAT_H
++/* Define to 1 if the system has the type 'fprintf_styled_ftype'. */
++#undef HAVE_FPRINTF_STYLED_FTYPE
++
+ /* Define to 1 if you have the 'getcwd' function. */
+ #undef HAVE_GETCWD
+@@ -261,9 +258,6 @@
+ /* bfd output arch */
+ #undef OUTPUT_ARCH
+-/* bfd output mach */
+-#undef OUTPUT_MACH
+-
+ /* Name of package */
+ #undef PACKAGE
+@@ -321,14 +315,6 @@
+ /* The size of 'short', as computed by sizeof. */
+ #undef SIZEOF_SHORT
+-/* If using the C implementation of alloca, define if you know the
+-   direction of stack growth for your system; otherwise it will be
+-   automatically deduced at runtime.
+-      STACK_DIRECTION > 0 => grows toward higher addresses
+-      STACK_DIRECTION < 0 => grows toward lower addresses
+-      STACK_DIRECTION = 0 => direction of growth unknown */
+-#undef STACK_DIRECTION
+-
+ /* staticly linked images */
+ #undef STATIC_LINKING
+@@ -461,6 +447,3 @@
+ /* short gmp3 limbs */
+ #undef __SHORT_LIMB
+-
+-/* Define as 'unsigned int' if <stddef.h> doesn't define. */
+-#undef size_t
+--- gcl27-2.7.1.orig/h/hppa-linux.h
++++ gcl27-2.7.1/h/hppa-linux.h
+@@ -17,3 +17,5 @@
+ #define RELOC_H "elf32_hppa_reloc.h"
+ #define SPECIAL_RELOC_H "elf32_hppa_reloc_special.h"
++
++#define OUTPUT_MACH bfd_mach_hppa11
+--- gcl27-2.7.1.orig/h/loongarch64-linux.h
++++ gcl27-2.7.1/h/loongarch64-linux.h
+@@ -10,3 +10,5 @@
+ /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */
+ #define NEED_STACK_CHK_GUARD
++
++#define OUTPUT_MACH bfd_mach_loongarch64
+--- gcl27-2.7.1.orig/h/m68k-linux.h
++++ gcl27-2.7.1/h/m68k-linux.h
+@@ -56,3 +56,5 @@ int cacheflush(void *,int,int,int);
+ #define NEED_STACK_CHK_GUARD
+ /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */
++
++#define OUTPUT_MACH bfd_mach_m68060
+--- gcl27-2.7.1.orig/h/mipsel-linux.h
++++ gcl27-2.7.1/h/mipsel-linux.h
+@@ -1,3 +1,5 @@
+ #include "linux.h"
+ #define SGC
++
++#define OUTPUT_MACH bfd_mach_mipsisa64r6
+--- gcl27-2.7.1.orig/h/powerpc-linux.h
++++ gcl27-2.7.1/h/powerpc-linux.h
+@@ -11,6 +11,7 @@
+ #if SIZEOF_LONG == 4
+ #define RELOC_H "elf32_ppc_reloc.h"
++#define OUTPUT_MACH bfd_mach_ppc
+ #else
+ #ifdef WORDS_BIGENDIAN
+ #define RELOC_H "elf64_ppc_reloc.h"
+@@ -20,5 +21,6 @@
+ #define RELOC_H "elf64_ppcle_reloc.h"
+ #define SPECIAL_RELOC_H "elf64_ppcle_reloc_special.h"
+ #endif
++#define OUTPUT_MACH bfd_mach_ppc64
+ #define C_GC_OFFSET 4
+ #endif
+--- gcl27-2.7.1.orig/h/riscv64-linux.h
++++ gcl27-2.7.1/h/riscv64-linux.h
+@@ -9,3 +9,5 @@
+ /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */
+ #define NEED_STACK_CHK_GUARD
++
++#define OUTPUT_MACH bfd_mach_riscv64
+--- gcl27-2.7.1.orig/h/s390-linux.h
++++ gcl27-2.7.1/h/s390-linux.h
+@@ -6,6 +6,9 @@
+ #define C_GC_OFFSET 4
+ #define RELOC_H "elf64_s390_reloc.h"
+ #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h"
++#define OUTPUT_MACH #define bfd_mach_s390_64
+ #else
+ #define RELOC_H "elf32_s390_reloc.h"
++#define OUTPUT_MACH #define bfd_mach_s390_32
+ #endif
++
+--- gcl27-2.7.1.orig/h/sh4-linux.h
++++ gcl27-2.7.1/h/sh4-linux.h
+@@ -21,3 +21,5 @@
+ #define NEED_STACK_CHK_GUARD
+ /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */
++
++#define OUTPUT_MACH bfd_mach_sh4
+--- gcl27-2.7.1.orig/h/sparc-linux.h
++++ gcl27-2.7.1/h/sparc-linux.h
+@@ -18,3 +18,5 @@ void unwind() __attribute__((optimize("O
+ /* #if SIZEOF_LONG == 8 */
+ /* #define C_GC_OFFSET 4 */
+ /* #endif */
++
++#define OUTPUT_MACH bfd_mach_sparc_v9
+--- gcl27-2.7.1.orig/info/character.texi
++++ gcl27-2.7.1/info/character.texi
+@@ -40,14 +40,14 @@ This is faster than CHAR.
+ @end defun
+ @defvr {Constant} CHAR-SUPER-BIT 
+-Package:LISP
++Package:SI
+ The bit that indicates a super character.
+ @end defvr
+ @defvr {Constant} CHAR-FONT-LIMIT 
+-Package:LISP
++Package:SI
+ The upper exclusive bound on values produced by CHAR-FONT.
+@@ -63,7 +63,7 @@ If not, simply returns CHAR.
+ @end defun
+ @defun STRING-CHAR-P (char)
+-Package:LISP
++Package:SI
+ Returns T if CHAR can be stored in a string.  In GCL, this function always
+ returns T since any character in GCL can be stored in a string.
+@@ -113,7 +113,7 @@ otherwise.
+ @end defun
+ @defvr {Constant} CHAR-HYPER-BIT 
+-Package:LISP
++Package:SI
+ The bit that indicates a hyper character.
+@@ -137,7 +137,7 @@ Returns the code attribute of CHAR.
+ @end defun
+ @defvr {Constant} CHAR-CONTROL-BIT 
+-Package:LISP
++Package:SI
+ The bit that indicates a control character.
+@@ -154,7 +154,7 @@ is used.
+ @end defun
+ @defun CHAR-FONT (char)
+-Package:LISP
++Package:SI
+ Returns the font attribute of CHAR.
+@@ -179,7 +179,7 @@ otherwise.
+ @end defun
+ @defvr {Constant} CHAR-META-BIT 
+-Package:LISP
++Package:SI
+ The bit that indicates a meta character.
+@@ -204,7 +204,7 @@ Upper case character and its lower case
+ @end defun
+ @defvr {Constant} CHAR-BITS-LIMIT 
+-Package:LISP
++Package:SI
+ The upper exclusive bound on values produced by CHAR-BITS.
+@@ -243,7 +243,7 @@ Returns T if CHAR is an upper-case chara
+ @end defun
+ @defun CHAR-BIT (char name)
+-Package:LISP
++Package:SI
+ Returns T if the named bit is on in the character CHAR; NIL otherwise.
+ In GCL, this function always returns NIL.
+@@ -252,7 +252,7 @@ In GCL, this function always returns NIL
+ @end defun
+ @defun MAKE-CHAR (char &optional (bits 0) (font 0))
+-Package:LISP
++Package:SI
+ Returns a character object with the same code attribute as CHAR and with
+ the specified BITS and FONT attributes.
+@@ -350,7 +350,7 @@ Returns T if CHAR is either numeric or a
+ @end defun
+ @defun CHAR-BITS (char)
+-Package:LISP
++Package:SI
+ Returns the bits attribute (which is always 0 in GCL) of CHAR.
+@@ -367,7 +367,7 @@ Returns NIL if no such character exists.
+ @end defun
+ @defun SET-CHAR-BIT (char name newvalue)
+-Package:LISP
++Package:SI
+ Returns a character just like CHAR except that the named bit is set or
+ cleared, according to whether NEWVALUE is non-NIL or NIL.  This function
+--- gcl27-2.7.1.orig/info/compile.texi
++++ gcl27-2.7.1/info/compile.texi
+@@ -20,7 +20,7 @@ NIL, these files are automatically delet
+ @end defun
+ @defun LINK (files image &optional post extra-libs (run-user-init t) &aux raw init) 
+-Package:LISP
++Package:COMPILER
+ On systems where dlopen is used for relocations, one cannot make custom
+ images containing loaded binary object files simply by loading the files
+@@ -242,24 +242,6 @@ their lisp names.  Please see also the P
+ @end defun
+-
+-@defun GPROF-SET (begin end)
+-Package:SYSTEM
+-
+-GCL now has preliminary support for profiling with gprof, an
+-externally supplied profiling tool at the C level which typically
+-accompanies gcc.  Support must be enabled at compile time with
+---enable-gprof.  This function sets the address range used by
+-GPROF-START in specifying the section of the running program which is
+-to be profiled.  All subsequent calls to GPROF-START will use this new
+-address range.  By default, the range is set to begin at the starting
+-address of the .text section, and to end at the current end of the
+-running core.  These default values can be restored by calling
+-GPROF-SET with both argments set to 0.
+-
+-@end defun
+-
+-
+ @defvar *DEFAULT-SYSTEM-P*
+ Package:COMPILER
+ Specifies the default setting of :SYSTEM-P used by COMPILE.  Defaults to NIL.
+--- gcl27-2.7.1.orig/info/compiler-defs.texi
++++ gcl27-2.7.1/info/compiler-defs.texi
+@@ -102,7 +102,7 @@ or
+ @end example
+ @end defun
+-@defun COMPILER-DEFAULT-TYPE  (pathname)
++@defun *COMPILER-DEFAULT-TYPE*  (pathname)
+ Package:COMPILER
+ Allows you to set the default file extension for compiler source files.
+@@ -150,13 +150,6 @@ NIL
+ @end defun
+-@defun  COMPILER-RESET-TYPE ()
+-Package:COMPILER
+-
+-Resets the default compiler input file extension to the GCL historical
+-value of #''.lsp''.
+-
+-@end defun
+ @defvar *CC* 
+ Package:COMPILER
+ Has value a string which controls which C compiler is used by GCL.
+--- gcl27-2.7.1.orig/info/form.texi
++++ gcl27-2.7.1/info/form.texi
+@@ -9,7 +9,7 @@ List of all the lambda-list keywords use
+ @end defvr
+ @defun GET-SETF-METHOD (form)
+-Package:LISP
++Package:SI
+ Returns the five values (or five 'gangs') constituting the SETF method for
+ FORM.  See the doc of DEFINE-SETF-METHOD for the meanings of the gangs.  It
+@@ -345,7 +345,7 @@ Also, see the function doc of PPRINT for
+ @end deffn
+ @defvar *EVALHOOK* 
+-Package:LISP
++Package:SI
+ If *EVALHOOK* is not NIL, its value must be a function that can receive
+ two arguments: a form to evaluate and an environment.  This function does
+ the evaluation instead of EVAL.
+@@ -521,7 +521,7 @@ a function.  Actually, however, there is
+ @end defvr
+ @defun APPLYHOOK (function args evalhookfn applyhookfn &optional (env nil))
+-Package:LISP
++Package:SI
+ Applies FUNCTION to ARGS, with *EVALHOOK* bound to EVALHOOKFN and with
+ *APPLYHOOK* bound to APPLYHOOKFN.  Ignores the hook function once, for the
+@@ -682,7 +682,7 @@ TEST.  Returns NIL, if all TESTs evaluat
+ @end deffn
+ @defun GET-SETF-METHOD-MULTIPLE-VALUE  (form)
+-Package:LISP
++Package:SI
+  Returns the five values (or five 'gangs')
+ constituting the SETF method for FORM.  See the doc of
+ DEFINE-SETF-METHOD for the meanings of the gangs.  The third value
+@@ -769,7 +769,7 @@ returns the value(s) of the last FORM.
+ @end deffn
+ @deffn {Macro} DEFINE-SETF-METHOD 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -799,7 +799,7 @@ by (documentation 'NAME 'setf).
+ @end deffn
+ @deffn {Special Form} COMPILER-LET 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -891,7 +891,7 @@ Creates a NIL block, binds VARs in paral
+ @end deffn
+ @defvar *APPLYHOOK* 
+-Package:LISP
++Package:SI
+ Used to substitute another function for the implicit APPLY normally done
+ within EVAL.  If *APPLYHOOK* is not NIL, its value must be a function 
+ which takes three arguments: a function to be applied, a list of arguments,
+@@ -1032,7 +1032,7 @@ form.
+ @end deffn
+ @defun EVALHOOK (form evalhookfn applyhookfn &optional (env nil))
+-Package:LISP
++Package:SI
+ Evaluates FORM with *EVALHOOK* bound to EVALHOOKFN and *APPLYHOOK* bound
+ to APPLYHOOKFN.  Ignores these hooks once, for the top-level evaluation
+--- gcl27-2.7.1.orig/info/internal.texi
++++ gcl27-2.7.1/info/internal.texi
+@@ -2,7 +2,7 @@
+ @chapter GCL Specific
+ @defun SYSTEM (string)
+-Package:LISP
++Package:SI
+ GCL specific: Executes a Shell command as if STRING is an input to the
+ Shell.  Not all versions of GCL support this function.  At least on
+@@ -49,16 +49,8 @@ on which GCL is currently running.
+ @end defun
+-@defun BY ()
+-Package:LISP
+-
+-GCL specific: Exits from GCL.
+-
+-
+-@end defun
+-
+ @deffn {Macro} DEFCFUN 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -126,7 +118,7 @@ C-type:
+ @end deffn
+ @deffn {Macro} CLINES 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -148,7 +140,7 @@ specified in the environment.
+ @end defun
+ @defun ALLOCATE (type number &optional (really-allocate nil))
+-Package:LISP
++Package:SI
+ GCL specific: Sets the maximum number of pages for the type class of the
+ GCL implementation type TYPE to NUMBER.  If REALLY-ALLOCATE is given a
+@@ -159,7 +151,7 @@ immediately.
+ @end defun
+ @defun GBC (x)
+-Package:LISP
++Package:SI
+ GCL specific: Invokes the garbage collector (GC) with the collection level
+ specified by X.  NIL as the argument causes GC to collect cells only.  T as
+@@ -169,7 +161,7 @@ the argument causes GC to collect everyt
+ @end defun
+ @defun SAVE (pathname)
+-Package:LISP
++Package:SI
+ GCL specific: Saves the current GCL core image into a program file specified
+ by PATHNAME.  This function depends on the version of GCL.  The function
+@@ -180,7 +172,7 @@ currently loaded .o files.
+ @end defun
+ @defun HELP* (string &optional (package 'lisp))
+-Package:LISP
++Package:USER
+ GCL specific: Prints the documentation associated with those symbols in the
+ specified package whose print names contain STRING as substring.  STRING may
+@@ -191,7 +183,7 @@ is NIL, then all packages are searched.
+ @end defun
+ @deffn {Macro} DEFLA 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -214,7 +206,7 @@ NIL otherwise.  See the doc of DECLARE f
+ @end defun
+ @deffn {Macro} DEFENTRY 
+-Package:LISP
++Package:SI
+ Syntax:
+ @example
+@@ -282,7 +274,7 @@ implementation dependent results.
+ @end defun
+ @defun BYE ( &optional (exit-status 0))
+-Package:LISP
++Package:SI
+ GCL specific: Exits from GCL with exit-status.
+@@ -290,7 +282,7 @@ GCL specific: Exits from GCL with exit-s
+ @end defun
+ @defun USE-FAST-LINKS (turn-on)
+-Package:LISP
++Package:SI
+ GCL specific: If TURN-ON is not nil, the fast link mechanism is enabled,
+ so that ordinary function calls will not appear in the invocation stack,
+--- gcl27-2.7.1.orig/info/number.texi
++++ gcl27-2.7.1/info/number.texi
+@@ -86,7 +86,7 @@ BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or
+ @end defun
+ @defun INT-CHAR (integer)
+-Package:LISP
++Package:SI
+ Performs the inverse of CHAR-INT.  Equivalent to CODE-CHAR in GCL.
+--- gcl27-2.7.1.orig/info/si-defs.texi
++++ gcl27-2.7.1/info/si-defs.texi
+@@ -41,14 +41,6 @@ calling this the defstruct should not be
+ @end defun
+-@defun MAXIMUM-ALLOCATABLE-PAGES (type)
+-Package:SI
+-
+-GCL specific: Returns the current maximum number of pages for the type class
+-of the GCL implementation type TYPE.
+-
+-
+-@end defun
+ @defun ALLOCATED-RELOCATABLE-PAGES ()
+ Package:SI
+@@ -64,14 +56,6 @@ Give SYMBOL the VALUE on INDICATOR prope
+ @end defun
+-@defun ALLOCATED-PAGES (type)
+-Package:SI
+-
+-GCL specific: Returns the number of pages currently allocated for the type
+-class of the GCL implementation type TYPE.
+-
+-
+-@end defun
+ @defun ALLOCATE-RELOCATABLE-PAGES (number)
+ Package:SI
+@@ -420,18 +404,6 @@ type.
+ @end defun
+-@defun CATCH-BAD-SIGNALS ()
+-Package:SI
+-
+-GCL/BSD specific: Installs a signal catcher for bad signals:
+-      SIGILL, SIGIOT, SIGEMT, SIGBUS, SIGSEGV, SIGSYS.
+-The signal catcher, upon catching the signal, signals an error (and enter
+-the break-level).  Since the internal memory of GCL may be broken, the user
+-should check the signal and exit from GCL if necessary.  When the signal
+-is caught during garbage collection, GCL terminates immediately.
+-
+-
+-@end defun
+ @defun RESET-STACK-LIMITS ()
+ Package:SI
+@@ -450,7 +422,7 @@ should be set NIL.
+ @end defvar
+-@defvar *GBC-NOTIFY* 
++@defvar *NOTIFY-GBC*
+ Package:SI
+ GCL specific: If the value is non-NIL, the garbage
+ collector prints a very brief one line message about the area causing the collection,
+@@ -465,7 +437,7 @@ a lisp variable indicating the TYPE whic
+ @end defvar
+-@deffn {Funcition} ALLOCATED (type)
++@deffn {Function} ALLOCATED (type)
+ Package:SI
+ Returns 6 values:
+@@ -572,13 +544,6 @@ resetting io streams.   It would not be
+ @end defun
+-@defun UNCATCH-BAD-SIGNALS ()
+-Package:SI
+-
+-GCL/BSD specific: Undoes the effect of SI:CATCH-BAD-SIGNALS.
+-
+-
+-@end defun
+ @defun VS (i)
+ Package:SI
+@@ -601,13 +566,6 @@ the GCL process.
+ @end defun
+-@defvar *DEFAULT-TIME-ZONE* 
+-Package:SI
+-GCL specific: Holds the default time zone.  The initial value of SI:*DEFAULT-
+-TIME-ZONE* is 6 (the time zone of Austin, Texas).
+-
+-
+-@end defvar
+ @defun GETENV (string)
+ Package:SI
+@@ -660,47 +618,36 @@ stack.
+ @end defun
+-@defun WRITE-DEBUG-SYMBOLS (start file &key (main-file "/usr/local/schelter/xgcl/unixport/raw_gcl") (output-file "debug-symbols.o" ))
+-Package:SI
+-
+-Write out a file of debug-symbols using address START as the place
+-where FILE will be loaded into the running executable MAIN-FILE.  The
+-last is a keyword argument.
+-
++@c @defun PROF (x y)
++@c Package:SI
++@c These functions in the SI package are GCL specific, and allow monitoring
++@c the run time of functions loaded into GCL, as well as the basic functions.
++@c  Sample Usage:
++@c     (si::set-up-profile 1000000) (si::prof 0 90)
++@c      run program
++@c     (si::prof 0 0)   ;; turn off profile
++@c     (si::display-prof)
++@c     (si::clear-profile)
++@c     (si::prof 0 90)  ;; start profile again
++@c     run program
++@c    ..
++@c   Profile can be stopped with (si::prof 0 0) and restarted with (si::prof 0 90)
++@c The START-ADDRESS will correspond to the beginning of the profile array, and
++@c the SCALE will mean that 256 bytes of code correspond to SCALE bytes in the
++@c profile array.
++
++@c Thus if the profile array is 1,000,000  bytes long and the code segment is 
++@c 5 megabytes long you can profile the whole thing using a scale of 50
++@c Note that long runs may result in overflow, and so an understating of the
++@c time in a function.
++
++@c You must run intensively however since, with a scale of 128 it takes
++@c 6,000,000 times through a loop to overflow the sampling in one part of
++@c the code.
+-@end defun
+-@defun PROF (x y)
+-Package:SI
+-
+-These functions in the SI package are GCL specific, and allow monitoring
+-the run time of functions loaded into GCL, as well as the basic functions.
+- Sample Usage:
+-    (si::set-up-profile 1000000) (si::prof 0 90)
+-     run program
+-    (si::prof 0 0)   ;; turn off profile
+-    (si::display-prof)
+-    (si::clear-profile)
+-    (si::prof 0 90)  ;; start profile again
+-    run program
+-   ..
+-  Profile can be stopped with (si::prof 0 0) and restarted with (si::prof 0 90)
+-The START-ADDRESS will correspond to the beginning of the profile array, and
+-the SCALE will mean that 256 bytes of code correspond to SCALE bytes in the
+-profile array.
+-
+-Thus if the profile array is 1,000,000  bytes long and the code segment is 
+-5 megabytes long you can profile the whole thing using a scale of 50
+-Note that long runs may result in overflow, and so an understating of the
+-time in a function.
+-
+-You must run intensively however since, with a scale of 128 it takes
+-6,000,000 times through a loop to overflow the sampling in one part of
+-the code.
+-
+-
+-@end defun
++@c @end defun
+ @defun CATCH-FATAL (i)
+ Package:SI
+--- gcl27-2.7.1.orig/info/structure.texi
++++ gcl27-2.7.1/info/structure.texi
+@@ -34,7 +34,7 @@ a lisp structure correspond to a C struc
+ @end deffn
+ @defun HELP (&optional symbol)
+-Package:LISP
++Package:USER
+ GCL specific: Prints the documentation associated with SYMBOL.  With no
+ argument, this function prints the greeting message to GCL beginners.
+--- gcl27-2.7.1.orig/info/type.texi
++++ gcl27-2.7.1/info/type.texi
+@@ -34,7 +34,7 @@ Returns T if X is of the type TYPE; NIL
+ @end defun
+ @defun COMMONP (x)
+-Package:LISP
++Package:SI
+ Returns T if X is a Common Lisp object; NIL otherwise.
+--- gcl27-2.7.1.orig/info/user-interface.texi
++++ gcl27-2.7.1/info/user-interface.texi
+@@ -61,7 +61,7 @@ Evaluates FORM in the single-step mode a
+ @end deffn
+ @defvar *BREAK-ENABLE* 
+-Package:LISP
++Package:SI
+ GCL specific:  When an error occurrs, control enters to the break loop only
+ if the value of this variable is non-NIL.
+@@ -99,7 +99,7 @@ Holds the I/O stream used by the GCL deb
+ @end defvar
+ @defvar *BREAK-ON-WARNINGS* 
+-Package:LISP
++Package:SI
+ When the function WARN is called, control enters to the break loop only
+ if the value of this varialbe is non-NIL.
+--- gcl27-2.7.1.orig/lsp/gcl_listlib.lsp
++++ gcl27-2.7.1/lsp/gcl_listlib.lsp
+@@ -371,7 +371,8 @@
+ (defseq union (nil (l1 l2) :list t)
+   (let (rp)
+-    (prog1 (or (mapcan (lambda (x)
++    (prog1 (or (unless l2 l1)
++             (mapcan (lambda (x)
+                        (unless (member (key x) l2 :test #'test)
+                          (setq rp (cons x nil))))
+                      l1)
+@@ -380,21 +381,26 @@
+ (defseq set-difference (nil (l1 l2) :list t)
+-  (mapcan (lambda (x)
++  (if l2
++      (mapcan (lambda (x)
+           (unless (member (key x) l2 :test #'test)
+             (cons x nil)))
+-        l1))
++            l1)
++      l1))
+ (defseq set-exclusive-or (nil (l1 l2) :list t)
+-  (let (rp (rr (copy-list l2)))
+-    (prog1 (or (mapcan (lambda (x &aux (k (key x)))
++  (let (rp tmp n2)
++    (declare (dynamic-extent tmp))
++    (or (unless l2 l1)
++      (prog1 (mapcan (lambda (x &aux (k (key x)))
+                        (if (member k l2 :test #'test)
+-                           (unless (setq rr (delete k rr :test #'test)))
++                           (unless (push k tmp))
+                            (setq rp (cons x nil))))
+                      l1)
+-             rr)
+-      (when rp (rplacd rp rr)))))
++        (setq n2 (set-difference l2 tmp :test (lambda (x y) (funcall #'test y x))))
++        (when rp (rplacd rp n2)))
++      n2)))
+ (defseq nintersection (nil (l1 l2) :list t)
+   (let (r rp)
+--- gcl27-2.7.1.orig/lsp/gcl_lr.lsp
++++ gcl27-2.7.1/lsp/gcl_lr.lsp
+@@ -106,7 +106,8 @@
+ (defbltin clzl)
+ (defbltin ctzl)
+-(defbltin popcountl)
++#-darwin(defbltin popcountl) ;Macports builtin calls external function outside symbol table
++#+darwin(defmacro popcountl (x) `(popcount ,x))
+ (defbltin parityl)
+ (defbltin ffsl)
+--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp
++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp
+@@ -112,10 +112,12 @@
+ (defun canonicalize-pathname-directory (l)
+   (cond ((eq l :wild) (canonicalize-pathname-directory '(:absolute :wild-inferiors)))
+       ((stringp l) (canonicalize-pathname-directory (list :absolute l)))
+-      ((mapl (lambda (x &aux (c (car x)))
+-               (when (and (or (stringp c) (eq c :wild)) (eq (cadr x) :back))
++      ((mapl (lambda (x &aux (c (car x))
++                          (skip (cond ((equal c ".") (cdr x))
++                                      ((when (or (stringp c) (eq c :wild)) (eq (cadr x) :back)) (cddr x)))))
++               (when skip
+                  (return-from canonicalize-pathname-directory
+-                   (canonicalize-pathname-directory (nconc (ldiff-nf l x) (cddr x))))))
++                   (canonicalize-pathname-directory (nconc (ldiff-nf l x) skip)))))
+              l))))
+ (defvar *default-pathname-defaults* (init-pathname nil nil nil nil nil nil ""))
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -1439,7 +1439,8 @@ BEGIN:
+ #ifdef USE_READLINE
+         if (readline_on && strm->sm.sm_fp==rl_instream)
+-          if (rl_line_buffer) return *rl_line_buffer ? TRUE : FALSE;
++          /*FIXME homogenize this*/
++          if (rl_line_buffer) return *rl_line_buffer && *rl_line_buffer!=EOF ? TRUE : FALSE;
+ #endif
+               if (strm->sm.sm_fp == NULL)
+                       closed_stream(strm);
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -186,7 +186,8 @@ next_line(int l,ufixnum *s) {
+   ssize_t i;
+   char *p;
+-  if (*s && (n=strlen(FN1))) {
++  if (*s) {
++    n=strlen(FN1);
+     memmove(FN1,FN1+n+1,sizeof(FN1)-(n+1));
+     *s-=n+1;
+   }
+@@ -406,6 +407,31 @@ setup_maxpages(double scale) {
+ }
++int
++qemu_p(void)  {
++
++#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/
++
++  char *c;
++  ufixnum e,r=0;
++  int l;
++
++  massert((l=open("/proc/cpuinfo",O_RDONLY))!=-1);
++
++  for (e=0;!e && (c=next_line(l,&r));)
++    e=!memcmp("model",c,5) && strstr(c,"QEMU");
++
++  massert(!close(l));
++
++  return e;
++
++#else
++
++  return 0;
++
++#endif
++}
++
+ static void *
+ next_shared_lib_map_no_malloc(void)  {
+@@ -727,6 +753,7 @@ main(int argc, char **argv, char **envp)
+   bds_top = bds_org-1;
+   frs_top = frs_org-1;
++#define CHECK_FOR_QEMU
+ #include "cstack.h"
+   gcl_init_alloc(alloca(1));
+@@ -1432,6 +1459,7 @@ my_fprintf(void *v,const char *f,...) {
+   return r;
+ }
++#ifdef HAVE_FPRINTF_STYLED_FTYPE
+ static int
+ my_fprintf_styled(void *v,enum disassembler_style,const char *f,...) {
+   va_list va;
+@@ -1441,6 +1469,7 @@ my_fprintf_styled(void *v,enum disassemb
+   va_end(va);
+   return r;
+ }
++#endif
+ static int
+ my_read(bfd_vma memaddr, bfd_byte *myaddr, unsigned int length, struct disassemble_info *dinfo) {
+@@ -1468,14 +1497,18 @@ DEFUN("DISASSEMBLE-INSTRUCTION",object,f
+   if ((v=dlopen("libopcodes.so",RTLD_NOW))) {
+     if ((s=dlsym(v,"init_disassemble_info"))) {
+-      s(&i, stdout,(fprintf_ftype) my_fprintf,my_fprintf_styled);
++      s(&i, stdout,(fprintf_ftype)my_fprintf
++#ifdef HAVE_FPRINTF_STYLED_FTYPE
++      ,my_fprintf_styled
++#endif
++      );
+       i.read_memory_func=my_read;
+       i.print_address_func=my_pa;
+ #if defined(OUTPUT_MACH)
+       i.mach=OUTPUT_MACH;
+ #endif
+       if ((s=dlsym(v,"disassembler"))) {
+-      disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,false,0,NULL);/*bfd_mach_x86_64*/
++      disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,0,0,NULL);
+       bp=b;
+       disasm(addr,&i);
+       my_fprintf(NULL," ;");
+--- gcl27-2.7.1.orig/o/msbrk.c
++++ gcl27-2.7.1/o/msbrk.c
+@@ -17,13 +17,21 @@ msbrk_end(void) {
+ }
+-#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/
++#if !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/
+ static void *
+ new_map(void *v,ufixnum s) {
+   return mmap(v,s,PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_ANON|MAP_FIXED,-1,0);
+ }
++#if defined(DARWIN)
++/*This initial heap must be large enough to initialize the raw image,
++  but not so large that the Mac linker ignores the segment designation
++  and creates a __huge section under __DATA for this and other
++  variables.  We enlarge this on unexec.*/
++asm (".zerofill __HEAP,__heap,__end,0x70000000\n\t.globl __end");
++#endif
++
+ int
+ msbrk_init(void) {
+--- gcl27-2.7.1.orig/o/num_sfun.c
++++ gcl27-2.7.1/o/num_sfun.c
+@@ -802,7 +802,6 @@ DEFUN("ISINF",object,fSisinf,SI,1,1,NONE
+ }
+-
+ void
+ gcl_init_num_sfun(void)
+ {
+--- gcl27-2.7.1.orig/o/sfaslmacho.c
++++ gcl27-2.7.1/o/sfaslmacho.c
+@@ -208,7 +208,7 @@ load_memory(struct section *sec1,struct
+       if (LOAD_SEC(sec))
+       memcpy((void *)sec->addr,v1+sec->offset,sec->size);
+       else
+-      bzero((void *)sec->sh_addr,sec->sh_size);
++      bzero((void *)sec->addr,sec->size);
+     }
+   if (**got) {
+--- gcl27-2.7.1.orig/o/unexmacosx.c
++++ gcl27-2.7.1/o/unexmacosx.c
+@@ -211,9 +211,6 @@ vm_range_t marked_regions [MAX_MARKED_RE
+ unsigned num_marked_regions;
+-/* Size of the heap.  */
+-static unsigned long big_heap;
+-
+ /* Start of the heap.  */
+ char *mach_mapstart = 0;
+@@ -543,42 +540,6 @@ copy_data_segment (struct load_command *
+     unexec_error ("cannot write header of __DATA segment");
+   curr_header_offset += lc->cmdsize;
+-  /* Create new __DATA segment load commands for regions on the region
+-     list that do not corresponding to any segment load commands in
+-     the input file.
+-  */
+-  /* for (j = 0; j < num_unexec_regions; j++) */
+-    {
+-      struct segment_command sc;
+-
+-      sc.cmd = LC_SEGMENT;
+-      sc.cmdsize = sizeof (struct segment_command);
+-      /* strncpy (sc.segname, SEG_DATA, 16); */
+-      strncpy (sc.segname, "__HEAP", 16);
+-      sc.vmaddr = (long)mach_mapstart;
+-      sc.vmsize = mach_maplimit-mach_mapstart;
+-      sc.fileoff = curr_file_offset;
+-      sc.filesize = core_end-mach_mapstart;
+-      sc.maxprot = VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE;
+-      sc.initprot = VM_PROT_READ | VM_PROT_WRITE /* | VM_PROT_EXECUTE */;
+-      sc.nsects = 0;
+-      sc.flags = 0;
+-
+-#if VERBOSE
+-      printf ("Writing segment %-16.16s @ %#8lx (%#8lx/%#8lx @ %#10lx)\n",
+-            sc.segname, (long) (sc.fileoff), (long) (sc.filesize),
+-            (long) (sc.vmsize), (long) (sc.vmaddr));
+-#endif
+-
+-      if (!unexec_write (sc.fileoff, (void *) sc.vmaddr, sc.filesize))
+-      unexec_error ("cannot write new __DATA segment");
+-      curr_file_offset += ROUNDUP_TO_PAGE_BOUNDARY (sc.filesize);
+-
+-      if (!unexec_write (curr_header_offset, &sc, sc.cmdsize))
+-      unexec_error ("cannot write new __DATA segment's header");
+-      curr_header_offset += sc.cmdsize;
+-      mh.ncmds++;
+-    }
+ }
+ /* Copy a LC_SYMTAB load command from the input file to the output
+@@ -853,7 +814,7 @@ static void
+ dump_it () {
+   int i;
+-  long linkedit_delta = 0;
++  long linkedit_delta=0,linkedit_vmdelta=0;
+   
+ #if VERBOSE
+   printf ("--- Load Commands written to Output File ---\n");
+@@ -878,17 +839,46 @@ dump_it () {
+         
+         copy_data_segment (lca[i]);
+-      } else {
++      } else if (strncmp (scp->segname, "__HEAP", 16) == 0) {
+-        if (strncmp (scp->segname, SEG_LINKEDIT, 16) == 0) {
+-          if (linkedit_delta)
+-            unexec_error ("cannot handle multiple LINKEDIT segments in input file");
+-          linkedit_delta = curr_file_offset - scp->fileoff;
+-        }
++        extern char *data_start;
++        struct section *sectp = (struct section *) (scp + 1);
++        unsigned long header_offset=curr_header_offset + sizeof (struct segment_command);
+         
+-        if (strncmp (scp->segname, "__HEAP", 16) != 0) copy_segment (lca[i]); else mh.ncmds--;
++        scp->vmaddr=(long)data_start;
++        linkedit_vmdelta=(1UL<<37)-scp->vmsize;
++        scp->vmsize=(1UL<<37);
++        scp->fileoff=curr_file_offset;
++        scp->filesize=core_end-data_start;
++        scp->maxprot=VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE;
++        scp->initprot=VM_PROT_READ | VM_PROT_WRITE;
++        scp->nsects=1;
++        scp->flags=S_REGULAR;
+         
+-      }
++        sectp->addr=scp->vmaddr;
++        sectp->size=scp->filesize;
++        sectp->flags=S_REGULAR;
++
++        if (!unexec_write (header_offset, sectp, sizeof (struct section)))
++          unexec_error ("cannot write section _HEAP's header");
++
++        if (!unexec_write (scp->fileoff, (void *) scp->vmaddr, scp->filesize))
++          unexec_error ("cannot write __HEAP segment");
++        curr_file_offset += ROUNDUP_TO_PAGE_BOUNDARY (scp->filesize);
++
++        if (!unexec_write (curr_header_offset, scp, sizeof (struct segment_command)))
++          unexec_error ("cannot write header of __HEAP segment");
++        curr_header_offset += scp->cmdsize;
++
++      } else if (strncmp (scp->segname, SEG_LINKEDIT, 16) == 0) {
++
++        if (linkedit_delta)
++          unexec_error ("cannot handle multiple LINKEDIT segments in input file");
++        linkedit_delta = curr_file_offset - scp->fileoff;
++        scp->vmaddr+=linkedit_vmdelta;
++        copy_segment (lca[i]);
++      } else
++        copy_segment (lca[i]);
+       }
+       break;
+     case LC_SYMTAB:
+@@ -1035,52 +1025,6 @@ unexec (char *outfile, char *infile, voi
+ }
+-/* Replacement for broken sbrk(2).  */
+-
+-#include <sys/mman.h>
+-#include <errno.h>
+-unsigned long
+-probe_big_heap(unsigned long try,unsigned long inc,unsigned long max) {
+-
+-  void *r;
+-
+-  if ((r=mmap(NULL, try, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0))==(void *)-1)
+-    return try>inc ? probe_big_heap(try-inc,inc>>1,max) : 0;
+-  munmap(r,try);
+-  return (!inc || try >=max) ? try : probe_big_heap(try+inc,inc,max);
+-
+-}
+-
+-void *my_sbrk (long incr)
+-{
+-  char               *temp, *ptr;
+-
+-  if (mach_brkpt == 0) {
+-
+-    big_heap=(1UL)<<35;
+-    if (!(big_heap=probe_big_heap(PAGESIZE,big_heap>>1,big_heap))) {
+-      unexec_error("my_sbrk(): probe_big_heap() failed\n");
+-      return ((char *)-1);
+-    }
+-
+-    mach_brkpt=mmap(NULL, big_heap, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
+-        
+-    mach_mapstart = mach_brkpt;
+-    mach_maplimit = mach_brkpt + big_heap;
+-
+-  }
+-  if (incr == 0) {
+-    return (mach_brkpt);
+-  } else {
+-    ptr = mach_brkpt + incr;
+-    if (ptr<mach_mapstart || ptr > mach_maplimit)
+-      return (char *)-1;
+-    temp = mach_brkpt;
+-    mach_brkpt = ptr;
+-    return (temp);
+-  }
+-}
+-
+ static size_t stub_size (malloc_zone_t *zone, const void *ptr)
+ {
+     extern object malloc_list;
+--- gcl27-2.7.1.orig/pcl/gcl_pcl_defs.lisp
++++ gcl27-2.7.1/pcl/gcl_pcl_defs.lisp
+@@ -411,6 +411,7 @@
+ ;    (print `(deftype ,name nil `(si::std-instance ,(si::coerce-to-standard-class ',name))))
+ ;    (print (si::coerce-to-standard-class name))
+     (eval `(deftype ,name nil t))
++    (unintern (get name 'si::simple-typep-fn))
+     (remprop name 'si::simple-typep-fn)))
+   ;; #+cmu17 (declare (ignore name predicate))
+--- gcl27-2.7.1.orig/xbin/ar_merge
++++ gcl27-2.7.1/xbin/ar_merge
+@@ -4,13 +4,14 @@ FLAGS=$1
+ shift
+ ARCHIVE=$1
+ shift
++XPWD=$(pwd)
+ TMPDIR=$(mktemp -d)
+ while [ $# -gt 0 ] ; do
+     case $(basename $1) in
+       *.o) cp $1 $TMPDIR;;
+       *.go) cp $1 $TMPDIR/$(echo $(basename $1)|sed 's,\.go,.o,g');;
+-      *.a) ar x $1 --output $TMPDIR;;
++      *.a) cd $TMPDIR && ar x $XPWD/$1 && cd $XPWD;;
+       recompile);;
+       *) echo Bad arg $1 ; exit 1 ;;
+     esac
diff --git a/debian/patches/Version_2_7_2pre20 b/debian/patches/Version_2_7_2pre20
new file mode 100644 (file)
index 0000000..0251806
--- /dev/null
@@ -0,0 +1,4803 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 13 2026 17:27:35 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1105309
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre19"
++"Version_2_7_2pre20"
+--- gcl27-2.7.1.orig/info/c-interface.texi
++++ gcl27-2.7.1/info/c-interface.texi
+@@ -8,7 +8,7 @@
+ * External Shared Libraries::
+ @end menu
+-@node Available Symbols,  , C Interface, C Interface
++@node Available Symbols, External Shared Libraries , C Interface, C Interface
+ @section Available Symbols
+ When GCL is built, those symbols in the system libraries which
+--- gcl27-2.7.1.orig/info/gcl-dwdoc.info
++++ gcl27-2.7.1/info/gcl-dwdoc.info
+@@ -1,4 +1,4 @@
+-This is gcl-dwdoc.info, produced by makeinfo version 7.1 from
++This is gcl-dwdoc.info, produced by makeinfo version 7.3 from
+ gcl-dwdoc.texi.
+ This is a Texinfo GCL DWDOC Manual
+@@ -882,7 +882,6 @@ that were adapted from X Consortium soft
+ ;;*****************************************************************
+-
\1f
+ Tag Table:
+ Node: Top\7f415
+--- gcl27-2.7.1.orig/info/gcl-si.info
++++ gcl27-2.7.1/info/gcl-si.info
+@@ -1,4 +1,4 @@
+-This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi.
++This is gcl-si.info, produced by makeinfo version 7.3 from gcl-si.texi.
+ This is a Texinfo GCL SYSTEM INTERNALS Manual
+@@ -12,46 +12,46 @@ END-INFO-DIR-ENTRY
\1f
+ Indirect:
+ gcl-si.info-1: 319
+-gcl-si.info-2: 343510
++gcl-si.info-2: 343457
\1f
+ Tag Table:
+ (Indirect)
+ Node: Top\7f319
+-Node: Numbers\7f1239
+-Node: Sequences and Arrays and Hash Tables\7f23635
+-Node: Characters\7f49430
+-Node: Lists\7f56802
+-Node: Streams and Reading\7f70576
+-Node: Special Forms and Functions\7f95964
+-Node: Compilation\7f121601
+-Node: Symbols\7f133502
+-Node: Operating System\7f143262
+-Node: Command Line\7f143478
+-Node: Operating System Definitions\7f147660
+-Node: Environment Variables\7f154017
+-Node: Structures\7f155607
+-Node: Iteration and Tests\7f157159
+-Node: User Interface\7f160609
+-Node: Doc\7f169668
+-Node: Type\7f172953
+-Node: GCL Specific\7f175611
+-Node: Bignums\7f184163
+-Node: C Interface\7f186852
+-Node: Available Symbols\7f187044
+-Node: External Shared Libraries\7f187535
+-Node: System Definitions\7f203120
+-Node: Regular Expressions\7f235093
+-Node: Debugging\7f241340
+-Node: Source Level Debugging in Emacs\7f241541
+-Node: Low Level Debug Functions\7f245786
+-Node: Miscellaneous\7f246786
+-Node: Environment\7f246994
+-Node: Inititialization\7f247619
+-Node: Low Level X Interface\7f248163
+-Node: Compiler Definitions\7f248760
+-Node: JAPI GUI Library Binding\7f254730
+-Node: Function Index\7f273784
+-Node: Variable Index\7f343510
++Node: Numbers\7f1205
++Node: Sequences and Arrays and Hash Tables\7f23601
++Node: Characters\7f49396
++Node: Lists\7f56768
++Node: Streams and Reading\7f70542
++Node: Special Forms and Functions\7f95930
++Node: Compilation\7f121567
++Node: Symbols\7f133468
++Node: Operating System\7f143228
++Node: Command Line\7f143444
++Node: Operating System Definitions\7f147626
++Node: Environment Variables\7f153983
++Node: Structures\7f155548
++Node: Iteration and Tests\7f157100
++Node: User Interface\7f160550
++Node: Doc\7f169609
++Node: Type\7f172894
++Node: GCL Specific\7f175552
++Node: Bignums\7f184104
++Node: C Interface\7f186793
++Node: Available Symbols\7f186985
++Node: External Shared Libraries\7f187476
++Node: System Definitions\7f203067
++Node: Regular Expressions\7f235040
++Node: Debugging\7f241287
++Node: Source Level Debugging in Emacs\7f241488
++Node: Low Level Debug Functions\7f245733
++Node: Miscellaneous\7f246733
++Node: Environment\7f246941
++Node: Inititialization\7f247566
++Node: Low Level X Interface\7f248110
++Node: Compiler Definitions\7f248707
++Node: JAPI GUI Library Binding\7f254677
++Node: Function Index\7f273731
++Node: Variable Index\7f343457
\1f
+ End Tag Table
+--- gcl27-2.7.1.orig/info/gcl-si.info-1
++++ gcl27-2.7.1/info/gcl-si.info-1
+@@ -1,4 +1,4 @@
+-This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi.
++This is gcl-si.info, produced by makeinfo version 7.3 from gcl-si.texi.
+ This is a Texinfo GCL SYSTEM INTERNALS Manual
+@@ -10,10 +10,10 @@ START-INFO-DIR-ENTRY
+ END-INFO-DIR-ENTRY
\1f
+-File: gcl-si.info,  Node: Top,  Next: Numbers,  Prev: (dir),  Up: (dir)
++File: gcl-si.info,  Node: Top,  Next: Numbers,  Up: (dir)
+-GCL SI Manual
+-*************
++Top
++***
+ * Menu:
+@@ -4900,7 +4900,7 @@ File: gcl-si.info,  Node: Operating Syst
+      may be any non-negative, non-complex number.
\1f
+-File: gcl-si.info,  Node: Environment Variables,  Next: Operating System Definitions,  Prev: Operating System,  Up: Operating System
++File: gcl-si.info,  Node: Environment Variables,  Prev: Operating System Definitions,  Up: Operating System
+ 9.3 Environment Variables
+ =========================
+@@ -5846,7 +5846,7 @@ which reference other libraries, but in
+ portable.
\1f
+-File: gcl-si.info,  Node: External Shared Libraries,  Prev: C Interface,  Up: C Interface
++File: gcl-si.info,  Node: External Shared Libraries,  Prev: Available Symbols,  Up: C Interface
+ 16.2 External Shared Libraries
+ ==============================
+--- gcl27-2.7.1.orig/info/gcl.info
++++ gcl27-2.7.1/info/gcl.info
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -13,1456 +13,1456 @@ END-INFO-DIR-ENTRY
\1f
+ Indirect:
+ gcl.info-1: 314
+-gcl.info-2: 300673
+-gcl.info-3: 600586
+-gcl.info-4: 904020
+-gcl.info-5: 1201894
+-gcl.info-6: 1501104
+-gcl.info-7: 1802018
+-gcl.info-8: 2102858
+-gcl.info-9: 2400458
++gcl.info-2: 300631
++gcl.info-3: 600484
++gcl.info-4: 903907
++gcl.info-5: 1201764
++gcl.info-6: 1500948
++gcl.info-7: 1801845
++gcl.info-8: 2102668
++gcl.info-9: 2400395
\1f
+ Tag Table:
+ (Indirect)
+ Node: Top\7f314
+-Node: Introduction (Introduction)\7f41180
+-Node: Scope\7f41532
+-Node: Scope and Purpose\7f41780
+-Node: History\7f42223
+-Node: Organization of the Document\7f51794
+-Node: Referenced Publications\7f54049
+-Node: Definitions\7f57706
+-Node: Notational Conventions\7f58098
+-Node: Font Key\7f58727
+-Node: Modified BNF Syntax\7f60568
+-Node: Splicing in Modified BNF Syntax\7f60943
+-Node: Indirection in Modified BNF Syntax\7f63439
+-Node: Additional Uses for Indirect Definitions in Modified BNF Syntax\7f64087
+-Node: Special Symbols\7f65271
+-Node: Objects with Multiple Notations\7f70068
+-Node: Case in Symbols\7f70512
+-Node: Numbers (Objects with Multiple Notations)\7f71682
+-Node: Use of the Dot Character\7f72082
+-Node: NIL\7f73024
+-Node: Designators\7f75082
+-Node: Nonsense Words\7f77493
+-Node: Error Terminology\7f78172
+-Node: Sections Not Formally Part Of This Standard\7f85495
+-Node: Interpreting Dictionary Entries\7f87005
+-Node: The "Affected By" Section of a Dictionary Entry\7f89404
+-Node: The "Arguments" Section of a Dictionary Entry\7f89937
+-Node: The "Arguments and Values" Section of a Dictionary Entry\7f90459
+-Node: The "Binding Types Affected" Section of a Dictionary Entry\7f91222
+-Node: The "Class Precedence List" Section of a Dictionary Entry\7f91910
+-Node: Dictionary Entries for Type Specifiers\7f93086
+-Node: The "Compound Type Specifier Kind" Section of a Dictionary Entry\7f94228
+-Node: The "Compound Type Specifier Syntax" Section of a Dictionary Entry\7f95279
+-Node: The "Compound Type Specifier Arguments" Section of a Dictionary Entry\7f95955
+-Node: The "Compound Type Specifier Description" Section of a Dictionary Entry\7f96522
+-Node: The "Constant Value" Section of a Dictionary Entry\7f97073
+-Node: The "Description" Section of a Dictionary Entry\7f97527
+-Node: The "Examples" Section of a Dictionary Entry\7f98052
+-Node: The "Exceptional Situations" Section of a Dictionary Entry\7f98541
+-Node: The "Initial Value" Section of a Dictionary Entry\7f99382
+-Node: The "Argument Precedence Order" Section of a Dictionary Entry\7f99906
+-Node: The "Method Signature" Section of a Dictionary Entry\7f100434
+-Node: The "Name" Section of a Dictionary Entry\7f101970
+-Node: The "Notes" Section of a Dictionary Entry\7f104030
+-Node: The "Pronunciation" Section of a Dictionary Entry\7f104740
+-Node: The "See Also" Section of a Dictionary Entry\7f105555
+-Node: The "Side Effects" Section of a Dictionary Entry\7f106030
+-Node: The "Supertypes" Section of a Dictionary Entry\7f106462
+-Node: The "Syntax" Section of a Dictionary Entry\7f107099
+-Node: Special "Syntax" Notations for Overloaded Operators\7f108288
+-Node: Naming Conventions for Rest Parameters\7f109441
+-Node: Requiring Non-Null Rest Parameters in The "Syntax" Section\7f110300
+-Node: Return values in The "Syntax" Section\7f111200
+-Node: No Arguments or Values in The "Syntax" Section\7f111890
+-Node: Unconditional Transfer of Control in The "Syntax" Section\7f112491
+-Node: The "Valid Context" Section of a Dictionary Entry\7f113061
+-Node: The "Value Type" Section of a Dictionary Entry\7f113702
+-Node: Conformance\7f114057
+-Node: Conforming Implementations\7f114473
+-Node: Required Language Features\7f115078
+-Node: Documentation of Implementation-Dependent Features\7f115707
+-Node: Documentation of Extensions\7f116434
+-Node: Treatment of Exceptional Situations\7f117077
+-Node: Resolution of Apparent Conflicts in Exceptional Situations\7f117476
+-Node: Examples of Resolution of Apparent Conflict in Exceptional Situations\7f118146
+-Node: Conformance Statement\7f119150
+-Node: Conforming Programs\7f120133
+-Node: Use of Implementation-Defined Language Features\7f121094
+-Node: Use of Read-Time Conditionals\7f122310
+-Node: Language Extensions\7f123461
+-Node: Language Subsets\7f125874
+-Node: Deprecated Language Features\7f126591
+-Node: Deprecated Functions\7f127432
+-Node: Deprecated Argument Conventions\7f127991
+-Node: Deprecated Variables\7f129001
+-Node: Deprecated Reader Syntax\7f129250
+-Node: Symbols in the COMMON-LISP Package\7f129721
+-Node: Syntax\7f152233
+-Node: Character Syntax\7f152477
+-Node: Readtables\7f153230
+-Node: The Current Readtable\7f154064
+-Node: The Standard Readtable\7f154649
+-Node: The Initial Readtable\7f155186
+-Node: Variables that affect the Lisp Reader\7f155641
+-Node: Standard Characters\7f156195
+-Node: Character Syntax Types\7f160645
+-Node: Constituent Characters\7f164581
+-Node: Constituent Traits\7f165196
+-Node: Invalid Characters\7f168740
+-Node: Macro Characters\7f169288
+-Node: Multiple Escape Characters\7f172062
+-Node: Examples of Multiple Escape Characters\7f172717
+-Node: Single Escape Character\7f173222
+-Node: Examples of Single Escape Characters\7f173717
+-Node: Whitespace Characters\7f174211
+-Node: Examples of Whitespace Characters\7f174560
+-Node: Reader Algorithm\7f174926
+-Node: Interpretation of Tokens\7f181432
+-Node: Numbers as Tokens\7f181792
+-Node: Potential Numbers as Tokens\7f182896
+-Node: Escape Characters and Potential Numbers\7f185486
+-Node: Examples of Potential Numbers\7f186251
+-Node: Constructing Numbers from Tokens\7f187377
+-Node: Syntax of a Rational\7f188178
+-Node: Syntax of an Integer\7f188393
+-Node: Syntax of a Ratio\7f188984
+-Node: Syntax of a Float\7f190114
+-Node: Syntax of a Complex\7f192612
+-Node: The Consing Dot\7f193668
+-Node: Symbols as Tokens\7f194192
+-Node: Valid Patterns for Tokens\7f197687
+-Node: Package System Consistency Rules\7f201027
+-Node: Standard Macro Characters\7f202688
+-Node: Left-Parenthesis\7f203460
+-Node: Right-Parenthesis\7f204990
+-Node: Single-Quote\7f205317
+-Node: Examples of Single-Quote\7f205775
+-Node: Semicolon\7f206012
+-Node: Examples of Semicolon\7f206576
+-Node: Notes about Style for Semicolon\7f206803
+-Node: Use of Single Semicolon\7f207220
+-Node: Use of Double Semicolon\7f207811
+-Node: Use of Triple Semicolon\7f208309
+-Node: Use of Quadruple Semicolon\7f208689
+-Node: Examples of Style for Semicolon\7f209199
+-Node: Double-Quote\7f210172
+-Node: Backquote\7f211618
+-Node: Notes about Backquote\7f215542
+-Node: Comma\7f216613
+-Node: Sharpsign\7f216904
+-Node: Sharpsign Backslash\7f221458
+-Node: Sharpsign Single-Quote\7f222621
+-Node: Sharpsign Left-Parenthesis\7f223094
+-Node: Sharpsign Asterisk\7f224614
+-Node: Examples of Sharpsign Asterisk\7f225878
+-Node: Sharpsign Colon\7f226296
+-Node: Sharpsign Dot\7f226812
+-Node: Sharpsign B\7f227490
+-Node: Sharpsign O\7f227881
+-Node: Sharpsign X\7f228288
+-Node: Sharpsign R\7f228794
+-Node: Sharpsign C\7f230089
+-Node: Sharpsign A\7f231168
+-Node: Sharpsign S\7f232365
+-Node: Sharpsign P\7f233472
+-Node: Sharpsign Equal-Sign\7f233889
+-Node: Sharpsign Sharpsign\7f234410
+-Node: Sharpsign Plus\7f235479
+-Node: Sharpsign Minus\7f236521
+-Node: Sharpsign Vertical-Bar\7f236881
+-Node: Examples of Sharpsign Vertical-Bar\7f237248
+-Node: Notes about Style for Sharpsign Vertical-Bar\7f240239
+-Node: Sharpsign Less-Than-Sign\7f241209
+-Node: Sharpsign Whitespace\7f241647
+-Node: Sharpsign Right-Parenthesis\7f242034
+-Node: Re-Reading Abbreviated Expressions\7f242334
+-Node: Evaluation and Compilation\7f242827
+-Node: Evaluation\7f243208
+-Node: Introduction to Environments\7f244496
+-Node: The Global Environment\7f245354
+-Node: Dynamic Environments\7f246005
+-Node: Lexical Environments\7f247164
+-Node: The Null Lexical Environment\7f248389
+-Node: Environment Objects\7f248903
+-Node: The Evaluation Model\7f249870
+-Node: Form Evaluation\7f250565
+-Node: Symbols as Forms\7f250868
+-Node: Lexical Variables\7f252916
+-Node: Dynamic Variables\7f253947
+-Node: Constant Variables\7f255692
+-Node: Symbols Naming Both Lexical and Dynamic Variables\7f256408
+-Node: Conses as Forms\7f257260
+-Node: Special Forms\7f258207
+-Node: Macro Forms\7f259721
+-Node: Function Forms\7f261547
+-Node: Lambda Forms\7f263997
+-Node: Self-Evaluating Objects\7f264655
+-Node: Examples of Self-Evaluating Objects\7f265377
+-Node: Lambda Expressions\7f265838
+-Node: Closures and Lexical Binding\7f266477
+-Node: Shadowing\7f270233
+-Node: Extent\7f273405
+-Node: Return Values\7f275671
+-Node: Compilation\7f277013
+-Node: Compiler Terminology\7f277320
+-Node: Compilation Semantics\7f281613
+-Node: Compiler Macros\7f282296
+-Node: Purpose of Compiler Macros\7f283957
+-Node: Naming of Compiler Macros\7f285672
+-Node: When Compiler Macros Are Used\7f286650
+-Node: Notes about the Implementation of Compiler Macros\7f288291
+-Node: Minimal Compilation\7f289408
+-Node: Semantic Constraints\7f290584
+-Node: File Compilation\7f294238
+-Node: Processing of Top Level Forms\7f296211
+-Node: Processing of Defining Macros\7f300673
+-Node: Constraints on Macros and Compiler Macros\7f303180
+-Node: Literal Objects in Compiled Files\7f303980
+-Node: Externalizable Objects\7f305390
+-Node: Similarity of Literal Objects\7f307018
+-Node: Similarity of Aggregate Objects\7f307262
+-Node: Definition of Similarity\7f307846
+-Node: Extensions to Similarity Rules\7f312714
+-Node: Additional Constraints on Externalizable Objects\7f313590
+-Node: Exceptional Situations in the Compiler\7f318327
+-Node: Declarations\7f320426
+-Node: Minimal Declaration Processing Requirements\7f321213
+-Node: Declaration Specifiers\7f322379
+-Node: Declaration Identifiers\7f322881
+-Node: Shorthand notation for Type Declarations\7f323697
+-Node: Declaration Scope\7f324064
+-Node: Examples of Declaration Scope\7f326037
+-Node: Lambda Lists\7f329237
+-Node: Ordinary Lambda Lists\7f331669
+-Node: Specifiers for the required parameters\7f334135
+-Node: Specifiers for optional parameters\7f334985
+-Node: A specifier for a rest parameter\7f336166
+-Node: Specifiers for keyword parameters\7f337171
+-Node: Suppressing Keyword Argument Checking\7f341194
+-Node: Examples of Suppressing Keyword Argument Checking\7f341885
+-Node: Specifiers for &aux variables\7f343127
+-Node: Examples of Ordinary Lambda Lists\7f343978
+-Node: Generic Function Lambda Lists\7f347919
+-Node: Specialized Lambda Lists\7f349247
+-Node: Macro Lambda Lists\7f350554
+-Node: Destructuring by Lambda Lists\7f355840
+-Node: Data-directed Destructuring by Lambda Lists\7f357031
+-Node: Examples of Data-directed Destructuring by Lambda Lists\7f357578
+-Node: Lambda-list-directed Destructuring by Lambda Lists\7f358291
+-Node: Destructuring Lambda Lists\7f361352
+-Node: Boa Lambda Lists\7f362584
+-Node: Defsetf Lambda Lists\7f366462
+-Node: Deftype Lambda Lists\7f367377
+-Node: Define-modify-macro Lambda Lists\7f367995
+-Node: Define-method-combination Arguments Lambda Lists\7f368863
+-Node: Syntactic Interaction of Documentation Strings and Declarations\7f369709
+-Node: Error Checking in Function Calls\7f370460
+-Node: Argument Mismatch Detection\7f370731
+-Node: Safe and Unsafe Calls\7f371220
+-Node: Error Detection Time in Safe Calls\7f373983
+-Node: Too Few Arguments\7f374566
+-Node: Too Many Arguments\7f375091
+-Node: Unrecognized Keyword Arguments\7f375739
+-Node: Invalid Keyword Arguments\7f376359
+-Node: Odd Number of Keyword Arguments\7f376963
+-Node: Destructuring Mismatch\7f377549
+-Node: Errors When Calling a Next Method\7f378086
+-Node: Traversal Rules and Side Effects\7f379061
+-Node: Destructive Operations\7f380307
+-Node: Modification of Literal Objects\7f380632
+-Node: Transfer of Control during a Destructive Operation\7f383030
+-Node: Examples of Transfer of Control during a Destructive Operation\7f383527
+-Node: Evaluation and Compilation Dictionary\7f384409
+-Node: lambda (Symbol)\7f385092
+-Node: lambda\7f386294
+-Node: compile\7f387416
+-Node: eval\7f390637
+-Node: eval-when\7f392579
+-Node: load-time-value\7f399022
+-Node: quote\7f404840
+-Node: compiler-macro-function\7f406424
+-Node: define-compiler-macro\7f407395
+-Node: defmacro\7f414887
+-Node: macro-function\7f421070
+-Node: macroexpand\7f423326
+-Node: define-symbol-macro\7f428393
+-Node: symbol-macrolet\7f430959
+-Node: *macroexpand-hook*\7f434090
+-Node: proclaim\7f436356
+-Node: declaim\7f438480
+-Node: declare\7f439293
+-Node: ignore\7f443327
+-Node: dynamic-extent\7f445364
+-Node: type\7f451758
+-Node: inline\7f458535
+-Node: ftype\7f462361
+-Node: declaration\7f463895
+-Node: optimize\7f464823
+-Node: special\7f466980
+-Node: locally\7f471468
+-Node: the\7f473644
+-Node: special-operator-p\7f476052
+-Node: constantp\7f476973
+-Node: Types and Classes\7f480013
+-Node: Introduction (Types and Classes)\7f480275
+-Node: Types\7f482433
+-Node: Data Type Definition\7f482645
+-Node: Type Relationships\7f483787
+-Node: Type Specifiers\7f485712
+-Node: Classes\7f493953
+-Node: Introduction to Classes\7f494815
+-Node: Standard Metaclasses\7f499543
+-Node: Defining Classes\7f500502
+-Node: Creating Instances of Classes\7f502174
+-Node: Inheritance\7f502965
+-Node: Examples of Inheritance\7f503429
+-Node: Inheritance of Class Options\7f504406
+-Node: Determining the Class Precedence List\7f505226
+-Node: Topological Sorting\7f507286
+-Node: Examples of Class Precedence List Determination\7f509719
+-Node: Redefining Classes\7f513273
+-Node: Modifying the Structure of Instances\7f516377
+-Node: Initializing Newly Added Local Slots (Redefining Classes)\7f517562
+-Node: Customizing Class Redefinition\7f519463
+-Node: Integrating Types and Classes\7f520542
+-Node: Types and Classes Dictionary\7f526807
+-Node: nil (Type)\7f527576
+-Node: boolean\7f528032
+-Node: function (System Class)\7f528832
+-Node: compiled-function\7f533548
+-Node: generic-function\7f534387
+-Node: standard-generic-function\7f535424
+-Node: class\7f535947
+-Node: built-in-class\7f536483
+-Node: structure-class\7f537409
+-Node: standard-class\7f537824
+-Node: method\7f538222
+-Node: standard-method\7f539361
+-Node: structure-object\7f539792
+-Node: standard-object\7f540391
+-Node: method-combination\7f540829
+-Node: t (System Class)\7f541488
+-Node: satisfies\7f541854
+-Node: member (Type Specifier)\7f543027
+-Node: not (Type Specifier)\7f544042
+-Node: and (Type Specifier)\7f544758
+-Node: or (Type Specifier)\7f545596
+-Node: values (Type Specifier)\7f546627
+-Node: eql (Type Specifier)\7f547894
+-Node: coerce\7f548669
+-Node: deftype\7f553331
+-Node: subtypep\7f556484
+-Node: type-of\7f563450
+-Node: typep\7f566367
+-Node: type-error\7f569776
+-Node: type-error-datum\7f570479
+-Node: simple-type-error\7f571825
+-Node: Data and Control Flow\7f572569
+-Node: Generalized Reference\7f572834
+-Node: Overview of Places and Generalized Reference\7f573161
+-Node: Evaluation of Subforms to Places\7f575480
+-Node: Examples of Evaluation of Subforms to Places\7f577985
+-Node: Setf Expansions\7f578711
+-Node: Examples of Setf Expansions\7f580781
+-Node: Kinds of Places\7f582666
+-Node: Variable Names as Places\7f583304
+-Node: Function Call Forms as Places\7f583582
+-Node: VALUES Forms as Places\7f591704
+-Node: THE Forms as Places\7f592842
+-Node: APPLY Forms as Places\7f593301
+-Node: Setf Expansions and Places\7f594670
+-Node: Macro Forms as Places\7f595090
+-Node: Symbol Macros as Places\7f595624
+-Node: Other Compound Forms as Places\7f596003
+-Node: Treatment of Other Macros Based on SETF\7f597034
+-Node: Transfer of Control to an Exit Point\7f598451
+-Node: Data and Control Flow Dictionary\7f600586
+-Node: apply\7f601820
+-Node: defun\7f603853
+-Node: fdefinition\7f607600
+-Node: fboundp\7f609447
+-Node: fmakunbound\7f611260
+-Node: flet\7f612245
+-Node: funcall\7f620119
+-Node: function (Special Operator)\7f621828
+-Node: function-lambda-expression\7f623911
+-Node: functionp\7f627159
+-Node: compiled-function-p\7f628117
+-Node: call-arguments-limit\7f629264
+-Node: lambda-list-keywords\7f629897
+-Node: lambda-parameters-limit\7f630640
+-Node: defconstant\7f631291
+-Node: defparameter\7f634137
+-Node: destructuring-bind\7f640716
+-Node: let\7f642039
+-Node: progv\7f645358
+-Node: setq\7f646867
+-Node: psetq\7f648555
+-Node: block\7f650545
+-Node: catch\7f652357
+-Node: go\7f655050
+-Node: return-from\7f656492
+-Node: return\7f658776
+-Node: tagbody\7f659769
+-Node: throw\7f662181
+-Node: unwind-protect\7f664850
+-Node: nil\7f670087
+-Node: not\7f670482
+-Node: t\7f671332
+-Node: eq\7f672319
+-Node: eql\7f674742
+-Node: equal\7f677723
+-Node: equalp\7f681330
+-Node: identity\7f685272
+-Node: complement\7f686031
+-Node: constantly\7f687735
+-Node: every\7f688709
+-Node: and\7f691704
+-Node: cond\7f693464
+-Node: if\7f695109
+-Node: or\7f696366
+-Node: when\7f697782
+-Node: case\7f700382
+-Node: typecase\7f705491
+-Node: multiple-value-bind\7f711071
+-Node: multiple-value-call\7f712938
+-Node: multiple-value-list\7f714194
+-Node: multiple-value-prog1\7f715015
+-Node: multiple-value-setq\7f715972
+-Node: values\7f717586
+-Node: values-list\7f719522
+-Node: multiple-values-limit\7f720504
+-Node: nth-value\7f721330
+-Node: prog\7f722623
+-Node: prog1\7f726375
+-Node: progn\7f728534
+-Node: define-modify-macro\7f729921
+-Node: defsetf\7f732405
+-Node: define-setf-expander\7f738548
+-Node: get-setf-expansion\7f743384
+-Node: setf\7f745138
+-Node: shiftf\7f747602
+-Node: rotatef\7f750209
+-Node: control-error\7f751930
+-Node: program-error\7f752551
+-Node: undefined-function\7f753097
+-Node: Iteration\7f753702
+-Node: The LOOP Facility\7f753876
+-Node: Overview of the Loop Facility\7f754342
+-Node: Simple vs Extended Loop\7f755123
+-Node: Simple Loop\7f755424
+-Node: Extended Loop\7f756117
+-Node: Loop Keywords\7f756748
+-Node: Parsing Loop Clauses\7f757682
+-Node: Expanding Loop Forms\7f759305
+-Node: Summary of Loop Clauses\7f762002
+-Node: Summary of Variable Initialization and Stepping Clauses\7f762303
+-Node: Summary of Value Accumulation Clauses\7f763136
+-Node: Summary of Termination Test Clauses\7f764926
+-Node: Summary of Unconditional Execution Clauses\7f766633
+-Node: Summary of Conditional Execution Clauses\7f767353
+-Node: Summary of Miscellaneous Clauses\7f768445
+-Node: Order of Execution\7f769138
+-Node: Destructuring\7f771010
+-Node: Restrictions on Side-Effects\7f775430
+-Node: Variable Initialization and Stepping Clauses\7f775667
+-Node: Iteration Control\7f776519
+-Node: The for-as-arithmetic subclause\7f779433
+-Node: Examples of for-as-arithmetic subclause\7f783281
+-Node: The for-as-in-list subclause\7f784034
+-Node: Examples of for-as-in-list subclause\7f784828
+-Node: The for-as-on-list subclause\7f785617
+-Node: Examples of for-as-on-list subclause\7f786370
+-Node: The for-as-equals-then subclause\7f786991
+-Node: Examples of for-as-equals-then subclause\7f787749
+-Node: The for-as-across subclause\7f788206
+-Node: Examples of for-as-across subclause\7f788908
+-Node: The for-as-hash subclause\7f789295
+-Node: The for-as-package subclause\7f791517
+-Node: Examples of for-as-package subclause\7f794081
+-Node: Local Variable Initializations\7f794702
+-Node: Examples of WITH clause\7f797545
+-Node: Value Accumulation Clauses\7f798587
+-Node: Examples of COLLECT clause\7f804424
+-Node: Examples of APPEND and NCONC clauses\7f805177
+-Node: Examples of COUNT clause\7f805798
+-Node: Examples of MAXIMIZE and MINIMIZE clauses\7f806120
+-Node: Examples of SUM clause\7f806991
+-Node: Termination Test Clauses\7f807397
+-Node: Examples of REPEAT clause\7f811567
+-Node: Examples of ALWAYS\7f812094
+-Node: Examples of WHILE and UNTIL clauses\7f814117
+-Node: Unconditional Execution Clauses\7f814912
+-Node: Examples of unconditional execution\7f815805
+-Node: Conditional Execution Clauses\7f816302
+-Node: Examples of WHEN clause\7f818007
+-Node: Miscellaneous Clauses\7f819686
+-Node: Control Transfer Clauses\7f820001
+-Node: Examples of NAMED clause\7f820829
+-Node: Initial and Final Execution\7f821220
+-Node: Examples of Miscellaneous Loop Features\7f822849
+-Node: Examples of clause grouping\7f823919
+-Node: Notes about Loop\7f826366
+-Node: Iteration Dictionary\7f827388
+-Node: do\7f827593
+-Node: dotimes\7f836034
+-Node: dolist\7f839489
+-Node: loop\7f841711
+-Node: loop-finish\7f847171
+-Node: Objects\7f849997
+-Node: Object Creation and Initialization\7f850301
+-Node: Initialization Arguments\7f854213
+-Node: Declaring the Validity of Initialization Arguments\7f856820
+-Node: Defaulting of Initialization Arguments\7f860319
+-Node: Rules for Initialization Arguments\7f863590
+-Node: Shared-Initialize\7f867442
+-Node: Initialize-Instance\7f870124
+-Node: Definitions of Make-Instance and Initialize-Instance\7f872859
+-Node: Changing the Class of an Instance\7f874957
+-Node: Modifying the Structure of the Instance\7f876209
+-Node: Initializing Newly Added Local Slots (Changing the Class of an Instance)\7f877147
+-Node: Customizing the Change of Class of an Instance\7f878884
+-Node: Reinitializing an Instance\7f879687
+-Node: Customizing Reinitialization\7f881150
+-Node: Meta-Objects\7f881814
+-Node: Standard Meta-objects\7f882340
+-Node: Slots\7f883379
+-Node: Introduction to Slots\7f883603
+-Node: Accessing Slots\7f886241
+-Node: Inheritance of Slots and Slot Options\7f888818
+-Node: Generic Functions and Methods\7f893560
+-Node: Introduction to Generic Functions\7f894055
+-Node: Introduction to Methods\7f897558
+-Node: Agreement on Parameter Specializers and Qualifiers\7f904020
+-Node: Congruent Lambda-lists for all Methods of a Generic Function\7f905017
+-Node: Keyword Arguments in Generic Functions and Methods\7f907159
+-Node: Examples of Keyword Arguments in Generic Functions and Methods\7f908851
+-Node: Method Selection and Combination\7f910190
+-Node: Determining the Effective Method\7f911656
+-Node: Selecting the Applicable Methods\7f912250
+-Node: Sorting the Applicable Methods by Precedence Order\7f912591
+-Node: Applying method combination to the sorted list of applicable methods\7f914656
+-Node: Standard Method Combination\7f916823
+-Node: Declarative Method Combination\7f921770
+-Node: Built-in Method Combination Types\7f922681
+-Node: Inheritance of Methods\7f926755
+-Node: Objects Dictionary\7f927326
+-Node: function-keywords\7f928334
+-Node: ensure-generic-function\7f929961
+-Node: allocate-instance\7f933269
+-Node: reinitialize-instance\7f934796
+-Node: shared-initialize\7f937031
+-Node: update-instance-for-different-class\7f941539
+-Node: update-instance-for-redefined-class\7f945677
+-Node: change-class\7f950951
+-Node: slot-boundp\7f954973
+-Node: slot-exists-p\7f956755
+-Node: slot-makunbound\7f957557
+-Node: slot-missing\7f959095
+-Node: slot-unbound\7f961434
+-Node: slot-value\7f963106
+-Node: method-qualifiers\7f965917
+-Node: no-applicable-method\7f966714
+-Node: no-next-method\7f967839
+-Node: remove-method\7f969042
+-Node: make-instance\7f969864
+-Node: make-instances-obsolete\7f971279
+-Node: make-load-form\7f972594
+-Node: make-load-form-saving-slots\7f984111
+-Node: with-accessors\7f986059
+-Node: with-slots\7f989000
+-Node: defclass\7f992371
+-Node: defgeneric\7f1004581
+-Node: defmethod\7f1015268
+-Node: find-class\7f1022161
+-Node: next-method-p\7f1024140
+-Node: call-method\7f1025245
+-Node: call-next-method\7f1028261
+-Node: compute-applicable-methods\7f1031322
+-Node: define-method-combination\7f1032384
+-Node: find-method\7f1056137
+-Node: add-method\7f1058794
+-Node: initialize-instance\7f1060028
+-Node: class-name\7f1061820
+-Node: setf class-name\7f1062577
+-Node: class-of\7f1063206
+-Node: unbound-slot\7f1064210
+-Node: unbound-slot-instance\7f1064878
+-Node: Structures\7f1065446
+-Node: Structures Dictionary\7f1065591
+-Node: defstruct\7f1065771
+-Node: copy-structure\7f1106547
+-Node: Conditions\7f1107143
+-Node: Condition System Concepts\7f1107318
+-Node: Condition Types\7f1110927
+-Node: Serious Conditions\7f1113346
+-Node: Creating Conditions\7f1113727
+-Node: Condition Designators\7f1114280
+-Node: Printing Conditions\7f1116120
+-Node: Recommended Style in Condition Reporting\7f1117463
+-Node: Capitalization and Punctuation in Condition Reports\7f1118592
+-Node: Leading and Trailing Newlines in Condition Reports\7f1119315
+-Node: Embedded Newlines in Condition Reports\7f1120277
+-Node: Note about Tabs in Condition Reports\7f1121450
+-Node: Mentioning Containing Function in Condition Reports\7f1122075
+-Node: Signaling and Handling Conditions\7f1122560
+-Node: Signaling\7f1124826
+-Node: Resignaling a Condition\7f1126016
+-Node: Restarts\7f1127076
+-Node: Interactive Use of Restarts\7f1129253
+-Node: Interfaces to Restarts\7f1130449
+-Node: Restart Tests\7f1131345
+-Node: Associating a Restart with a Condition\7f1131825
+-Node: Assertions\7f1132724
+-Node: Notes about the Condition System`s Background\7f1133221
+-Node: Conditions Dictionary\7f1133712
+-Node: condition\7f1134727
+-Node: warning\7f1136521
+-Node: style-warning\7f1136878
+-Node: serious-condition\7f1138082
+-Node: error (Condition Type)\7f1139315
+-Node: cell-error\7f1139680
+-Node: cell-error-name\7f1140286
+-Node: parse-error\7f1141281
+-Node: storage-condition\7f1141751
+-Node: assert\7f1143337
+-Node: error\7f1147298
+-Node: cerror\7f1150994
+-Node: check-type\7f1156124
+-Node: simple-error\7f1160414
+-Node: invalid-method-error\7f1160913
+-Node: method-combination-error\7f1162470
+-Node: signal\7f1163600
+-Node: simple-condition\7f1166161
+-Node: simple-condition-format-control\7f1167090
+-Node: warn\7f1168470
+-Node: simple-warning\7f1170904
+-Node: invoke-debugger\7f1171377
+-Node: break\7f1172879
+-Node: *debugger-hook*\7f1175321
+-Node: *break-on-signals*\7f1177816
+-Node: handler-bind\7f1180456
+-Node: handler-case\7f1183047
+-Node: ignore-errors\7f1188248
+-Node: define-condition\7f1190142
+-Node: make-condition\7f1201894
+-Node: restart\7f1203203
+-Node: compute-restarts\7f1203835
+-Node: find-restart\7f1206600
+-Node: invoke-restart\7f1208605
+-Node: invoke-restart-interactively\7f1210346
+-Node: restart-bind\7f1212665
+-Node: restart-case\7f1216713
+-Node: restart-name\7f1226531
+-Node: with-condition-restarts\7f1227497
+-Node: with-simple-restart\7f1228834
+-Node: abort (Restart)\7f1232322
+-Node: continue\7f1233316
+-Node: muffle-warning\7f1234477
+-Node: store-value\7f1236100
+-Node: use-value\7f1237337
+-Node: abort (Function)\7f1237974
+-Node: Symbols\7f1244311
+-Node: Symbol Concepts\7f1244467
+-Node: Symbols Dictionary\7f1245054
+-Node: symbol\7f1245484
+-Node: keyword\7f1250497
+-Node: symbolp\7f1251097
+-Node: keywordp\7f1251851
+-Node: make-symbol\7f1252735
+-Node: copy-symbol\7f1254350
+-Node: gensym\7f1256795
+-Node: *gensym-counter*\7f1259107
+-Node: gentemp\7f1259877
+-Node: symbol-function\7f1262729
+-Node: symbol-name\7f1265698
+-Node: symbol-package\7f1266401
+-Node: symbol-plist\7f1268258
+-Node: symbol-value\7f1269474
+-Node: get\7f1271489
+-Node: remprop\7f1274749
+-Node: boundp\7f1277377
+-Node: makunbound\7f1278371
+-Node: set\7f1279138
+-Node: unbound-variable\7f1280882
+-Node: Packages\7f1281453
+-Node: Package Concepts\7f1281620
+-Node: Introduction to Packages\7f1281833
+-Node: Package Names and Nicknames\7f1283633
+-Node: Symbols in a Package\7f1284404
+-Node: Internal and External Symbols\7f1284617
+-Node: Package Inheritance\7f1285532
+-Node: Accessibility of Symbols in a Package\7f1286482
+-Node: Locating a Symbol in a Package\7f1288095
+-Node: Prevention of Name Conflicts in Packages\7f1288714
+-Node: Standardized Packages\7f1292078
+-Node: The COMMON-LISP Package\7f1293018
+-Node: Constraints on the COMMON-LISP Package for Conforming Implementations\7f1294353
+-Node: Constraints on the COMMON-LISP Package for Conforming Programs\7f1295899
+-Node: Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs\7f1298010
+-Node: The COMMON-LISP-USER Package\7f1299857
+-Node: The KEYWORD Package\7f1300456
+-Node: Interning a Symbol in the KEYWORD Package\7f1301319
+-Node: Notes about The KEYWORD Package\7f1301909
+-Node: Implementation-Defined Packages\7f1302832
+-Node: Packages Dictionary\7f1303401
+-Node: package\7f1304073
+-Node: export\7f1304526
+-Node: find-symbol\7f1307608
+-Node: find-package\7f1310037
+-Node: find-all-symbols\7f1311063
+-Node: import\7f1312059
+-Node: list-all-packages\7f1314566
+-Node: rename-package\7f1315240
+-Node: shadow\7f1316528
+-Node: shadowing-import\7f1318907
+-Node: delete-package\7f1320839
+-Node: make-package\7f1325858
+-Node: with-package-iterator\7f1327910
+-Node: unexport\7f1333557
+-Node: unintern\7f1335117
+-Node: in-package\7f1337212
+-Node: unuse-package\7f1338185
+-Node: use-package\7f1339602
+-Node: defpackage\7f1341691
+-Node: do-symbols\7f1350040
+-Node: intern\7f1353622
+-Node: package-name\7f1355967
+-Node: package-nicknames\7f1357023
+-Node: package-shadowing-symbols\7f1357802
+-Node: package-use-list\7f1359034
+-Node: package-used-by-list\7f1359932
+-Node: packagep\7f1360806
+-Node: *package*\7f1361459
+-Node: package-error\7f1362832
+-Node: package-error-package\7f1363491
+-Node: Numbers (Numbers)\7f1364189
+-Node: Number Concepts\7f1364355
+-Node: Numeric Operations\7f1364733
+-Node: Associativity and Commutativity in Numeric Operations\7f1366757
+-Node: Examples of Associativity and Commutativity in Numeric Operations\7f1367880
+-Node: Contagion in Numeric Operations\7f1369540
+-Node: Viewing Integers as Bits and Bytes\7f1370057
+-Node: Logical Operations on Integers\7f1370311
+-Node: Byte Operations on Integers\7f1371392
+-Node: Implementation-Dependent Numeric Constants\7f1372189
+-Node: Rational Computations\7f1373377
+-Node: Rule of Unbounded Rational Precision\7f1373789
+-Node: Rule of Canonical Representation for Rationals\7f1374244
+-Node: Rule of Float Substitutability\7f1375355
+-Node: Floating-point Computations\7f1377758
+-Node: Rule of Float and Rational Contagion\7f1378238
+-Node: Examples of Rule of Float and Rational Contagion\7f1379135
+-Node: Rule of Float Approximation\7f1380199
+-Node: Rule of Float Underflow and Overflow\7f1381381
+-Node: Rule of Float Precision Contagion\7f1381823
+-Node: Complex Computations\7f1382174
+-Node: Rule of Complex Substitutability\7f1382661
+-Node: Rule of Complex Contagion\7f1383062
+-Node: Rule of Canonical Representation for Complex Rationals\7f1383469
+-Node: Examples of Rule of Canonical Representation for Complex Rationals\7f1384333
+-Node: Principal Values and Branch Cuts\7f1384998
+-Node: Interval Designators\7f1387034
+-Node: Random-State Operations\7f1388549
+-Node: Numbers Dictionary\7f1388900
+-Node: number\7f1390271
+-Node: complex (System Class)\7f1391433
+-Node: real\7f1393677
+-Node: float (System Class)\7f1394836
+-Node: short-float\7f1397498
+-Node: rational (System Class)\7f1401489
+-Node: ratio\7f1402525
+-Node: integer\7f1403124
+-Node: signed-byte\7f1404496
+-Node: unsigned-byte\7f1405533
+-Node: mod (System Class)\7f1406663
+-Node: bit (System Class)\7f1407409
+-Node: fixnum\7f1407770
+-Node: bignum\7f1408261
+-Node: =\7f1408567
+-Node: max\7f1411973
+-Node: minusp\7f1414051
+-Node: zerop\7f1414983
+-Node: floor\7f1415970
+-Node: sin\7f1420833
+-Node: asin\7f1421664
+-Node: pi\7f1428500
+-Node: sinh\7f1429610
+-Node: *\7f1434158
+-Node: +\7f1434996
+-Node: -\7f1435797
+-Node: /\7f1436958
+-Node: 1+\7f1438589
+-Node: abs\7f1439555
+-Node: evenp\7f1441002
+-Node: exp\7f1441920
+-Node: gcd\7f1445121
+-Node: incf\7f1446157
+-Node: lcm\7f1447353
+-Node: log\7f1448471
+-Node: mod (Function)\7f1450640
+-Node: signum\7f1451962
+-Node: sqrt\7f1453634
+-Node: random-state\7f1455719
+-Node: make-random-state\7f1456564
+-Node: random\7f1458507
+-Node: random-state-p\7f1460008
+-Node: *random-state*\7f1460781
+-Node: numberp\7f1462211
+-Node: cis\7f1462886
+-Node: complex\7f1463462
+-Node: complexp\7f1465115
+-Node: conjugate\7f1465770
+-Node: phase\7f1466549
+-Node: realpart\7f1468109
+-Node: upgraded-complex-part-type\7f1469108
+-Node: realp\7f1470092
+-Node: numerator\7f1470725
+-Node: rational (Function)\7f1471790
+-Node: rationalp\7f1473354
+-Node: ash\7f1474023
+-Node: integer-length\7f1475530
+-Node: integerp\7f1477194
+-Node: parse-integer\7f1477845
+-Node: boole\7f1479962
+-Node: boole-1\7f1484483
+-Node: logand\7f1485594
+-Node: logbitp\7f1489575
+-Node: logcount\7f1490770
+-Node: logtest\7f1492189
+-Node: byte\7f1493262
+-Node: deposit-field\7f1494517
+-Node: dpb\7f1495547
+-Node: ldb\7f1496995
+-Node: ldb-test\7f1498605
+-Node: mask-field\7f1499446
+-Node: most-positive-fixnum\7f1501104
+-Node: decode-float\7f1501778
+-Node: float\7f1507557
+-Node: floatp\7f1508496
+-Node: most-positive-short-float\7f1509130
+-Node: short-float-epsilon\7f1513431
+-Node: arithmetic-error\7f1514816
+-Node: arithmetic-error-operands\7f1515570
+-Node: division-by-zero\7f1516491
+-Node: floating-point-invalid-operation\7f1516969
+-Node: floating-point-inexact\7f1517757
+-Node: floating-point-overflow\7f1518512
+-Node: floating-point-underflow\7f1519021
+-Node: Characters\7f1519504
+-Node: Character Concepts\7f1519680
+-Node: Introduction to Characters\7f1520174
+-Node: Introduction to Scripts and Repertoires\7f1521581
+-Node: Character Scripts\7f1521889
+-Node: Character Repertoires\7f1522902
+-Node: Character Attributes\7f1523813
+-Node: Character Categories\7f1524821
+-Node: Graphic Characters\7f1526044
+-Node: Alphabetic Characters\7f1526971
+-Node: Characters With Case\7f1527634
+-Node: Uppercase Characters\7f1528088
+-Node: Lowercase Characters\7f1528543
+-Node: Corresponding Characters in the Other Case\7f1529017
+-Node: Case of Implementation-Defined Characters\7f1529548
+-Node: Numeric Characters\7f1530049
+-Node: Alphanumeric Characters\7f1530557
+-Node: Digits in a Radix\7f1530876
+-Node: Identity of Characters\7f1531604
+-Node: Ordering of Characters\7f1531874
+-Node: Character Names\7f1533664
+-Node: Treatment of Newline during Input and Output\7f1534807
+-Node: Character Encodings\7f1535358
+-Node: Documentation of Implementation-Defined Scripts\7f1536156
+-Node: Characters Dictionary\7f1537627
+-Node: character (System Class)\7f1538130
+-Node: base-char\7f1538741
+-Node: standard-char\7f1540725
+-Node: extended-char\7f1541265
+-Node: char=\7f1541726
+-Node: character\7f1547890
+-Node: characterp\7f1548769
+-Node: alpha-char-p\7f1549707
+-Node: alphanumericp\7f1550878
+-Node: digit-char\7f1552273
+-Node: digit-char-p\7f1553393
+-Node: graphic-char-p\7f1554893
+-Node: standard-char-p\7f1555779
+-Node: char-upcase\7f1556627
+-Node: upper-case-p\7f1559065
+-Node: char-code\7f1560614
+-Node: char-int\7f1561341
+-Node: code-char\7f1562337
+-Node: char-code-limit\7f1563099
+-Node: char-name\7f1563759
+-Node: name-char\7f1565683
+-Node: Conses\7f1566561
+-Node: Cons Concepts\7f1566709
+-Node: Conses as Trees\7f1567246
+-Node: General Restrictions on Parameters that must be Trees\7f1568215
+-Node: Conses as Lists\7f1568649
+-Node: Lists as Association Lists\7f1570049
+-Node: Lists as Sets\7f1570577
+-Node: General Restrictions on Parameters that must be Lists\7f1571128
+-Node: Conses Dictionary\7f1571785
+-Node: list (System Class)\7f1572547
+-Node: null (System Class)\7f1573781
+-Node: cons (System Class)\7f1574273
+-Node: atom (Type)\7f1575503
+-Node: cons\7f1575743
+-Node: consp\7f1576660
+-Node: atom\7f1577382
+-Node: rplaca\7f1578089
+-Node: car\7f1579229
+-Node: copy-tree\7f1585615
+-Node: sublis\7f1587244
+-Node: subst\7f1590990
+-Node: tree-equal\7f1595379
+-Node: copy-list\7f1597162
+-Node: list (Function)\7f1598484
+-Node: list-length\7f1600112
+-Node: listp\7f1602023
+-Node: make-list\7f1602828
+-Node: push\7f1603790
+-Node: pop\7f1605036
+-Node: first\7f1606335
+-Node: nth\7f1609212
+-Node: endp\7f1610271
+-Node: null\7f1611672
+-Node: nconc\7f1612482
+-Node: append\7f1614623
+-Node: revappend\7f1615757
+-Node: butlast\7f1617949
+-Node: last\7f1619785
+-Node: ldiff\7f1621553
+-Node: nthcdr\7f1625188
+-Node: rest\7f1626323
+-Node: member (Function)\7f1627307
+-Node: mapc\7f1629610
+-Node: acons\7f1633848
+-Node: assoc\7f1634867
+-Node: copy-alist\7f1638119
+-Node: pairlis\7f1639397
+-Node: rassoc\7f1640922
+-Node: get-properties\7f1643056
+-Node: getf\7f1644440
+-Node: remf\7f1647311
+-Node: intersection\7f1648666
+-Node: adjoin\7f1652608
+-Node: pushnew\7f1654554
+-Node: set-difference\7f1657299
+-Node: set-exclusive-or\7f1660676
+-Node: subsetp\7f1663774
+-Node: union\7f1665800
+-Node: Arrays\7f1668901
+-Node: Array Concepts\7f1669047
+-Node: Array Elements\7f1669235
+-Node: Array Indices\7f1669792
+-Node: Array Dimensions\7f1670207
+-Node: Implementation Limits on Individual Array Dimensions\7f1670797
+-Node: Array Rank\7f1671222
+-Node: Vectors\7f1671707
+-Node: Fill Pointers\7f1671913
+-Node: Multidimensional Arrays\7f1672645
+-Node: Storage Layout for Multidimensional Arrays\7f1672856
+-Node: Implementation Limits on Array Rank\7f1673370
+-Node: Specialized Arrays\7f1673744
+-Node: Array Upgrading\7f1675061
+-Node: Required Kinds of Specialized Arrays\7f1676443
+-Node: Arrays Dictionary\7f1677938
+-Node: array\7f1678753
+-Node: simple-array\7f1681805
+-Node: vector (System Class)\7f1683758
+-Node: simple-vector\7f1685858
+-Node: bit-vector\7f1686871
+-Node: simple-bit-vector\7f1687916
+-Node: make-array\7f1688902
+-Node: adjust-array\7f1697581
+-Node: adjustable-array-p\7f1705592
+-Node: aref\7f1706568
+-Node: array-dimension\7f1708259
+-Node: array-dimensions\7f1709126
+-Node: array-element-type\7f1709980
+-Node: array-has-fill-pointer-p\7f1711372
+-Node: array-displacement\7f1712530
+-Node: array-in-bounds-p\7f1714211
+-Node: array-rank\7f1715392
+-Node: array-row-major-index\7f1716170
+-Node: array-total-size\7f1717694
+-Node: arrayp\7f1718976
+-Node: fill-pointer\7f1719739
+-Node: row-major-aref\7f1720898
+-Node: upgraded-array-element-type\7f1721996
+-Node: array-dimension-limit\7f1723603
+-Node: array-rank-limit\7f1724132
+-Node: array-total-size-limit\7f1724626
+-Node: simple-vector-p\7f1725394
+-Node: svref\7f1726155
+-Node: vector\7f1727229
+-Node: vector-pop\7f1728135
+-Node: vector-push\7f1729406
+-Node: vectorp\7f1732238
+-Node: bit (Array)\7f1732946
+-Node: bit-and\7f1734292
+-Node: bit-vector-p\7f1738490
+-Node: simple-bit-vector-p\7f1739295
+-Node: Strings\7f1740005
+-Node: String Concepts\7f1740158
+-Node: Implications of Strings Being Arrays\7f1740374
+-Node: Subtypes of STRING\7f1740863
+-Node: Strings Dictionary\7f1741270
+-Node: string (System Class)\7f1741609
+-Node: base-string\7f1742681
+-Node: simple-string\7f1743631
+-Node: simple-base-string\7f1744674
+-Node: simple-string-p\7f1745588
+-Node: char\7f1746349
+-Node: string\7f1747896
+-Node: string-upcase\7f1749163
+-Node: string-trim\7f1753224
+-Node: string=\7f1754871
+-Node: stringp\7f1760411
+-Node: make-string\7f1761032
+-Node: Sequences\7f1761976
+-Node: Sequence Concepts\7f1762173
+-Node: General Restrictions on Parameters that must be Sequences\7f1763810
+-Node: Rules about Test Functions\7f1764195
+-Node: Satisfying a Two-Argument Test\7f1764464
+-Node: Examples of Satisfying a Two-Argument Test\7f1766921
+-Node: Satisfying a One-Argument Test\7f1768223
+-Node: Examples of Satisfying a One-Argument Test\7f1770095
+-Node: Sequences Dictionary\7f1770692
+-Node: sequence\7f1771131
+-Node: copy-seq\7f1771838
+-Node: elt\7f1772999
+-Node: fill\7f1774085
+-Node: make-sequence\7f1775484
+-Node: subseq\7f1777598
+-Node: map\7f1779695
+-Node: map-into\7f1782562
+-Node: reduce\7f1785450
+-Node: count\7f1788762
+-Node: length\7f1790858
+-Node: reverse\7f1791849
+-Node: sort\7f1793997
+-Node: find\7f1799450
+-Node: position\7f1802018
+-Node: search\7f1804179
+-Node: mismatch\7f1806112
+-Node: replace\7f1808424
+-Node: substitute\7f1810739
+-Node: concatenate\7f1816693
+-Node: merge\7f1818871
+-Node: remove\7f1823021
+-Node: remove-duplicates\7f1829433
+-Node: Hash Tables\7f1832943
+-Node: Hash Table Concepts\7f1833119
+-Node: Hash-Table Operations\7f1833351
+-Node: Modifying Hash Table Keys\7f1835369
+-Node: Visible Modification of Objects with respect to EQ and EQL\7f1837278
+-Node: Visible Modification of Objects with respect to EQUAL\7f1837739
+-Node: Visible Modification of Conses with respect to EQUAL\7f1838334
+-Node: Visible Modification of Bit Vectors and Strings with respect to EQUAL\7f1838821
+-Node: Visible Modification of Objects with respect to EQUALP\7f1839482
+-Node: Visible Modification of Structures with respect to EQUALP\7f1840092
+-Node: Visible Modification of Arrays with respect to EQUALP\7f1840573
+-Node: Visible Modification of Hash Tables with respect to EQUALP\7f1841177
+-Node: Visible Modifications by Language Extensions\7f1841886
+-Node: Hash Tables Dictionary\7f1842646
+-Node: hash-table\7f1843068
+-Node: make-hash-table\7f1843845
+-Node: hash-table-p\7f1846765
+-Node: hash-table-count\7f1847512
+-Node: hash-table-rehash-size\7f1848911
+-Node: hash-table-rehash-threshold\7f1850429
+-Node: hash-table-size\7f1851481
+-Node: hash-table-test\7f1852259
+-Node: gethash\7f1853122
+-Node: remhash\7f1855289
+-Node: maphash\7f1856137
+-Node: with-hash-table-iterator\7f1857980
+-Node: clrhash\7f1861417
+-Node: sxhash\7f1862271
+-Node: Filenames\7f1865253
+-Node: Overview of Filenames\7f1865457
+-Node: Namestrings as Filenames\7f1866256
+-Node: Pathnames as Filenames\7f1867349
+-Node: Parsing Namestrings Into Pathnames\7f1870698
+-Node: Pathnames\7f1871440
+-Node: Pathname Components\7f1871678
+-Node: The Pathname Host Component\7f1872166
+-Node: The Pathname Device Component\7f1872474
+-Node: The Pathname Directory Component\7f1872855
+-Node: The Pathname Name Component\7f1873204
+-Node: The Pathname Type Component\7f1873521
+-Node: The Pathname Version Component\7f1873934
+-Node: Interpreting Pathname Component Values\7f1874583
+-Node: Strings in Component Values\7f1875787
+-Node: Special Characters in Pathname Components\7f1876058
+-Node: Case in Pathname Components\7f1876962
+-Node: Local Case in Pathname Components\7f1877749
+-Node: Common Case in Pathname Components\7f1878548
+-Node: Special Pathname Component Values\7f1879341
+-Node: NIL as a Component Value\7f1879609
+-Node: ->WILD as a Component Value\7f1880153
+-Node: ->UNSPECIFIC as a Component Value\7f1881184
+-Node: Relation between component values NIL and ->UNSPECIFIC\7f1882575
+-Node: Restrictions on Wildcard Pathnames\7f1883422
+-Node: Restrictions on Examining Pathname Components\7f1884285
+-Node: Restrictions on Examining a Pathname Host Component\7f1885333
+-Node: Restrictions on Examining a Pathname Device Component\7f1885772
+-Node: Restrictions on Examining a Pathname Directory Component\7f1886476
+-Node: Directory Components in Non-Hierarchical File Systems\7f1890002
+-Node: Restrictions on Examining a Pathname Name Component\7f1890650
+-Node: Restrictions on Examining a Pathname Type Component\7f1891077
+-Node: Restrictions on Examining a Pathname Version Component\7f1891505
+-Node: Notes about the Pathname Version Component\7f1892484
+-Node: Restrictions on Constructing Pathnames\7f1893096
+-Node: Merging Pathnames\7f1894638
+-Node: Examples of Merging Pathnames\7f1895416
+-Node: Logical Pathnames\7f1896296
+-Node: Syntax of Logical Pathname Namestrings\7f1896535
+-Node: Additional Information about Parsing Logical Pathname Namestrings\7f1898475
+-Node: The Host part of a Logical Pathname Namestring\7f1898865
+-Node: The Device part of a Logical Pathname Namestring\7f1899510
+-Node: The Directory part of a Logical Pathname Namestring\7f1900041
+-Node: The Type part of a Logical Pathname Namestring\7f1900639
+-Node: The Version part of a Logical Pathname Namestring\7f1901134
+-Node: Wildcard Words in a Logical Pathname Namestring\7f1901786
+-Node: Lowercase Letters in a Logical Pathname Namestring\7f1902301
+-Node: Other Syntax in a Logical Pathname Namestring\7f1902741
+-Node: Logical Pathname Components\7f1903256
+-Node: Unspecific Components of a Logical Pathname\7f1903563
+-Node: Null Strings as Components of a Logical Pathname\7f1903995
+-Node: Filenames Dictionary\7f1904357
+-Node: pathname (System Class)\7f1904913
+-Node: logical-pathname (System Class)\7f1905357
+-Node: pathname\7f1905980
+-Node: make-pathname\7f1908718
+-Node: pathnamep\7f1913243
+-Node: pathname-host\7f1914123
+-Node: load-logical-pathname-translations\7f1918886
+-Node: logical-pathname-translations\7f1920745
+-Node: logical-pathname\7f1928794
+-Node: *default-pathname-defaults*\7f1930166
+-Node: namestring\7f1931389
+-Node: parse-namestring\7f1935356
+-Node: wild-pathname-p\7f1940118
+-Node: pathname-match-p\7f1942251
+-Node: translate-logical-pathname\7f1943474
+-Node: translate-pathname\7f1946158
+-Node: merge-pathnames\7f1952787
+-Node: Files\7f1957429
+-Node: File System Concepts\7f1957580
+-Node: Coercion of Streams to Pathnames\7f1958564
+-Node: File Operations on Open and Closed Streams\7f1959501
+-Node: Truenames\7f1960741
+-Node: Examples of Truenames\7f1961656
+-Node: Files Dictionary\7f1963226
+-Node: directory\7f1963543
+-Node: probe-file\7f1965097
+-Node: ensure-directories-exist\7f1966363
+-Node: truename\7f1967994
+-Node: file-author\7f1970636
+-Node: file-write-date\7f1971667
+-Node: rename-file\7f1972937
+-Node: delete-file\7f1975471
+-Node: file-error\7f1977278
+-Node: file-error-pathname\7f1978037
+-Node: Streams\7f1978586
+-Node: Stream Concepts\7f1978736
+-Node: Introduction to Streams\7f1979022
+-Node: Abstract Classifications of Streams (Introduction to Streams)\7f1980229
+-Node: Input\7f1980484
+-Node: Open and Closed Streams\7f1982112
+-Node: Interactive Streams\7f1983068
+-Node: Abstract Classifications of Streams\7f1984464
+-Node: File Streams\7f1984696
+-Node: Other Subclasses of Stream\7f1985400
+-Node: Stream Variables\7f1986616
+-Node: Stream Arguments to Standardized Functions\7f1987900
+-Node: Restrictions on Composite Streams\7f1990428
+-Node: Streams Dictionary\7f1990935
+-Node: stream\7f1992212
+-Node: broadcast-stream\7f1992805
+-Node: concatenated-stream\7f1995590
+-Node: echo-stream\7f1996835
+-Node: file-stream\7f1997591
+-Node: string-stream\7f1998159
+-Node: synonym-stream\7f1998782
+-Node: two-way-stream\7f1999606
+-Node: input-stream-p\7f2000162
+-Node: interactive-stream-p\7f2001281
+-Node: open-stream-p\7f2002370
+-Node: stream-element-type\7f2003270
+-Node: streamp\7f2004636
+-Node: read-byte\7f2005299
+-Node: write-byte\7f2006741
+-Node: peek-char\7f2007866
+-Node: read-char\7f2010678
+-Node: read-char-no-hang\7f2012513
+-Node: terpri\7f2014718
+-Node: unread-char\7f2016286
+-Node: write-char\7f2018259
+-Node: read-line\7f2019144
+-Node: write-string\7f2021165
+-Node: read-sequence\7f2022765
+-Node: write-sequence\7f2025066
+-Node: file-length\7f2026693
+-Node: file-position\7f2027735
+-Node: file-string-length\7f2031602
+-Node: open\7f2032383
+-Node: stream-external-format\7f2042146
+-Node: with-open-file\7f2043086
+-Node: close\7f2046380
+-Node: with-open-stream\7f2048547
+-Node: listen\7f2049797
+-Node: clear-input\7f2050918
+-Node: finish-output\7f2052772
+-Node: y-or-n-p\7f2054465
+-Node: make-synonym-stream\7f2057114
+-Node: synonym-stream-symbol\7f2058222
+-Node: broadcast-stream-streams\7f2058747
+-Node: make-broadcast-stream\7f2059293
+-Node: make-two-way-stream\7f2060359
+-Node: two-way-stream-input-stream\7f2061434
+-Node: echo-stream-input-stream\7f2062285
+-Node: make-echo-stream\7f2063051
+-Node: concatenated-stream-streams\7f2064124
+-Node: make-concatenated-stream\7f2064908
+-Node: get-output-stream-string\7f2065811
+-Node: make-string-input-stream\7f2067399
+-Node: make-string-output-stream\7f2068566
+-Node: with-input-from-string\7f2069693
+-Node: with-output-to-string\7f2072253
+-Node: *debug-io*\7f2074947
+-Node: *terminal-io*\7f2079648
+-Node: stream-error\7f2081164
+-Node: stream-error-stream\7f2081813
+-Node: end-of-file\7f2082558
+-Node: Printer\7f2083048
+-Node: The Lisp Printer\7f2083249
+-Node: Overview of The Lisp Printer\7f2083532
+-Node: Multiple Possible Textual Representations\7f2084234
+-Node: Printer Escaping\7f2086358
+-Node: Printer Dispatching\7f2087282
+-Node: Default Print-Object Methods\7f2087848
+-Node: Printing Numbers\7f2088759
+-Node: Printing Integers\7f2088953
+-Node: Printing Ratios\7f2089686
+-Node: Printing Floats\7f2090436
+-Node: Printing Complexes\7f2092071
+-Node: Note about Printing Numbers\7f2092571
+-Node: Printing Characters\7f2092919
+-Node: Printing Symbols\7f2093858
+-Node: Package Prefixes for Symbols\7f2095381
+-Node: Effect of Readtable Case on the Lisp Printer\7f2097274
+-Node: Examples of Effect of Readtable Case on the Lisp Printer\7f2099127
+-Node: Printing Strings\7f2102858
+-Node: Printing Lists and Conses\7f2103489
+-Node: Printing Bit Vectors\7f2105935
+-Node: Printing Other Vectors\7f2106584
+-Node: Printing Other Arrays\7f2108082
+-Node: Examples of Printing Arrays\7f2110343
+-Node: Printing Random States\7f2111067
+-Node: Printing Pathnames\7f2111952
+-Node: Printing Structures\7f2112539
+-Node: Printing Other Objects\7f2113481
+-Node: Examples of Printer Behavior\7f2114357
+-Node: The Lisp Pretty Printer\7f2115868
+-Node: Pretty Printer Concepts\7f2116168
+-Node: Dynamic Control of the Arrangement of Output\7f2117782
+-Node: Format Directive Interface\7f2120823
+-Node: Compiling Format Strings\7f2122073
+-Node: Pretty Print Dispatch Tables\7f2122706
+-Node: Pretty Printer Margins\7f2124310
+-Node: Examples of using the Pretty Printer\7f2124807
+-Node: Notes about the Pretty Printer`s Background\7f2136508
+-Node: Formatted Output\7f2137029
+-Node: FORMAT Basic Output\7f2141681
+-Node: Tilde C-> Character\7f2142008
+-Node: Tilde Percent-> Newline\7f2143820
+-Node: Tilde Ampersand-> Fresh-Line\7f2144174
+-Node: Tilde Vertical-Bar-> Page\7f2144584
+-Node: Tilde Tilde-> Tilde\7f2144875
+-Node: FORMAT Radix Control\7f2145084
+-Node: Tilde R-> Radix\7f2145397
+-Node: Tilde D-> Decimal\7f2146667
+-Node: Tilde B-> Binary\7f2147982
+-Node: Tilde O-> Octal\7f2148419
+-Node: Tilde X-> Hexadecimal\7f2148857
+-Node: FORMAT Floating-Point Printers\7f2149290
+-Node: Tilde F-> Fixed-Format Floating-Point\7f2149687
+-Node: Tilde E-> Exponential Floating-Point\7f2153778
+-Node: Tilde G-> General Floating-Point\7f2158895
+-Node: Tilde Dollarsign-> Monetary Floating-Point\7f2160262
+-Node: FORMAT Printer Operations\7f2162528
+-Node: Tilde A-> Aesthetic\7f2162827
+-Node: Tilde S-> Standard\7f2164066
+-Node: Tilde W-> Write\7f2164493
+-Node: FORMAT Pretty Printer Operations\7f2165301
+-Node: Tilde Underscore-> Conditional Newline\7f2165739
+-Node: Tilde Less-Than-Sign-> Logical Block\7f2166231
+-Node: Tilde I-> Indent\7f2169749
+-Node: Tilde Slash-> Call Function\7f2170115
+-Node: FORMAT Layout Control\7f2171975
+-Node: Tilde T-> Tabulate\7f2172310
+-Node: Tilde Less-Than-Sign-> Justification\7f2174535
+-Node: Tilde Greater-Than-Sign-> End of Justification\7f2177951
+-Node: FORMAT Control-Flow Operations\7f2178284
+-Node: Tilde Asterisk-> Go-To\7f2178773
+-Node: Tilde Left-Bracket-> Conditional Expression\7f2179666
+-Node: Tilde Right-Bracket-> End of Conditional Expression\7f2182176
+-Node: Tilde Left-Brace-> Iteration\7f2182577
+-Node: Tilde Right-Brace-> End of Iteration\7f2185861
+-Node: Tilde Question-Mark-> Recursive Processing\7f2186216
+-Node: FORMAT Miscellaneous Operations\7f2187573
+-Node: Tilde Left-Paren-> Case Conversion\7f2187936
+-Node: Tilde Right-Paren-> End of Case Conversion\7f2189225
+-Node: Tilde P-> Plural\7f2189579
+-Node: FORMAT Miscellaneous Pseudo-Operations\7f2190361
+-Node: Tilde Semicolon-> Clause Separator\7f2190759
+-Node: Tilde Circumflex-> Escape Upward\7f2191144
+-Node: Tilde Newline-> Ignored Newline\7f2194588
+-Node: Additional Information about FORMAT Operations\7f2196000
+-Node: Nesting of FORMAT Operations\7f2196444
+-Node: Missing and Additional FORMAT Arguments\7f2197835
+-Node: Additional FORMAT Parameters\7f2198328
+-Node: Undefined FORMAT Modifier Combinations\7f2198729
+-Node: Examples of FORMAT\7f2199140
+-Node: Notes about FORMAT\7f2203164
+-Node: Printer Dictionary\7f2203806
+-Node: copy-pprint-dispatch\7f2204575
+-Node: formatter\7f2205320
+-Node: pprint-dispatch\7f2206517
+-Node: pprint-exit-if-list-exhausted\7f2208053
+-Node: pprint-fill\7f2209651
+-Node: pprint-indent\7f2213094
+-Node: pprint-logical-block\7f2214955
+-Node: pprint-newline\7f2220449
+-Node: pprint-pop\7f2224793
+-Node: pprint-tab\7f2228009
+-Node: print-object\7f2229399
+-Node: print-unreadable-object\7f2234169
+-Node: set-pprint-dispatch\7f2235994
+-Node: write\7f2238185
+-Node: write-to-string\7f2242257
+-Node: *print-array*\7f2244469
+-Node: *print-base*\7f2245317
+-Node: *print-case*\7f2247630
+-Node: *print-circle*\7f2249989
+-Node: *print-escape*\7f2251610
+-Node: *print-gensym*\7f2252751
+-Node: *print-level*\7f2253402
+-Node: *print-lines*\7f2256487
+-Node: *print-miser-width*\7f2257874
+-Node: *print-pprint-dispatch*\7f2258420
+-Node: *print-pretty*\7f2259730
+-Node: *print-readably*\7f2261644
+-Node: *print-right-margin*\7f2265421
+-Node: print-not-readable\7f2266299
+-Node: print-not-readable-object\7f2267145
+-Node: format\7f2267721
+-Node: Reader\7f2269485
+-Node: Reader Concepts\7f2269645
+-Node: Dynamic Control of the Lisp Reader\7f2269931
+-Node: Effect of Readtable Case on the Lisp Reader\7f2270317
+-Node: Examples of Effect of Readtable Case on the Lisp Reader\7f2271362
+-Node: Argument Conventions of Some Reader Functions\7f2272883
+-Node: The EOF-ERROR-P argument\7f2273204
+-Node: The RECURSIVE-P argument\7f2274833
+-Node: Reader Dictionary\7f2277604
+-Node: readtable\7f2278124
+-Node: copy-readtable\7f2278933
+-Node: make-dispatch-macro-character\7f2280840
+-Node: read\7f2282101
+-Node: read-delimited-list\7f2287318
+-Node: read-from-string\7f2291029
+-Node: readtable-case\7f2293509
+-Node: readtablep\7f2294711
+-Node: set-dispatch-macro-character\7f2295384
+-Node: set-macro-character\7f2298467
+-Node: set-syntax-from-char\7f2301037
+-Node: with-standard-io-syntax\7f2303156
+-Node: *read-base*\7f2305176
+-Node: *read-default-float-format*\7f2306531
+-Node: *read-eval*\7f2308076
+-Node: *read-suppress*\7f2308786
+-Node: *readtable*\7f2312435
+-Node: reader-error\7f2313495
+-Node: System Construction\7f2314029
+-Node: System Construction Concepts\7f2314245
+-Node: Loading\7f2314497
+-Node: Features\7f2315454
+-Node: Feature Expressions\7f2315963
+-Node: Examples of Feature Expressions\7f2316986
+-Node: System Construction Dictionary\7f2318577
+-Node: compile-file\7f2318984
+-Node: compile-file-pathname\7f2323747
+-Node: load\7f2325797
+-Node: with-compilation-unit\7f2331390
+-Node: *features*\7f2333616
+-Node: *compile-file-pathname*\7f2339053
+-Node: *load-pathname*\7f2340365
+-Node: *compile-print*\7f2341587
+-Node: *load-print*\7f2342189
+-Node: *modules*\7f2342827
+-Node: provide\7f2343385
+-Node: Environment\7f2346236
+-Node: The External Environment\7f2346437
+-Node: Top level loop\7f2346704
+-Node: Debugging Utilities\7f2347560
+-Node: Environment Inquiry\7f2348056
+-Node: Time\7f2348746
+-Node: Decoded Time\7f2349986
+-Node: Universal Time\7f2351555
+-Node: Internal Time\7f2352611
+-Node: Seconds\7f2353192
+-Node: Environment Dictionary\7f2353737
+-Node: decode-universal-time\7f2354443
+-Node: encode-universal-time\7f2356390
+-Node: get-universal-time\7f2357560
+-Node: sleep\7f2359710
+-Node: apropos\7f2360797
+-Node: describe\7f2362343
+-Node: describe-object\7f2364191
+-Node: trace\7f2367094
+-Node: step\7f2369975
+-Node: time\7f2371307
+-Node: internal-time-units-per-second\7f2373187
+-Node: get-internal-real-time\7f2373799
+-Node: get-internal-run-time\7f2374654
+-Node: disassemble\7f2375992
+-Node: documentation\7f2377376
+-Node: room\7f2383694
+-Node: ed\7f2384792
+-Node: inspect\7f2386255
+-Node: dribble\7f2387151
+-Node: - (Variable)\7f2389031
+-Node: + (Variable)\7f2389674
+-Node: * (Variable)\7f2390745
+-Node: / (Variable)\7f2392292
+-Node: lisp-implementation-type\7f2393438
+-Node: short-site-name\7f2394670
+-Node: machine-instance\7f2395633
+-Node: machine-type\7f2396440
+-Node: machine-version\7f2397102
+-Node: software-type\7f2397814
+-Node: user-homedir-pathname\7f2398832
+-Node: Glossary (Glossary)\7f2400458
+-Node: Glossary\7f2400599
+-Node: Appendix\7f2561441
+-Node: Removed Language Features\7f2561579
+-Node: Requirements for removed and deprecated features\7f2561942
+-Node: Removed Types\7f2563145
+-Node: Removed Operators\7f2563378
+-Node: Removed Argument Conventions\7f2563757
+-Node: Removed Variables\7f2564075
+-Node: Removed Reader Syntax\7f2564439
+-Node: Packages No Longer Required\7f2564695
++Node: Introduction (Introduction)\7f41175
++Node: Scope\7f41527
++Node: Scope and Purpose\7f41775
++Node: History\7f42218
++Node: Organization of the Document\7f51790
++Node: Referenced Publications\7f54045
++Node: Definitions\7f57704
++Node: Notational Conventions\7f58096
++Node: Font Key\7f58725
++Node: Modified BNF Syntax\7f60566
++Node: Splicing in Modified BNF Syntax\7f60941
++Node: Indirection in Modified BNF Syntax\7f63437
++Node: Additional Uses for Indirect Definitions in Modified BNF Syntax\7f64085
++Node: Special Symbols\7f65269
++Node: Objects with Multiple Notations\7f70066
++Node: Case in Symbols\7f70510
++Node: Numbers (Objects with Multiple Notations)\7f71680
++Node: Use of the Dot Character\7f72080
++Node: NIL\7f73022
++Node: Designators\7f75079
++Node: Nonsense Words\7f77490
++Node: Error Terminology\7f78169
++Node: Sections Not Formally Part Of This Standard\7f85492
++Node: Interpreting Dictionary Entries\7f87002
++Node: The "Affected By" Section of a Dictionary Entry\7f89401
++Node: The "Arguments" Section of a Dictionary Entry\7f89934
++Node: The "Arguments and Values" Section of a Dictionary Entry\7f90456
++Node: The "Binding Types Affected" Section of a Dictionary Entry\7f91219
++Node: The "Class Precedence List" Section of a Dictionary Entry\7f91907
++Node: Dictionary Entries for Type Specifiers\7f93083
++Node: The "Compound Type Specifier Kind" Section of a Dictionary Entry\7f94225
++Node: The "Compound Type Specifier Syntax" Section of a Dictionary Entry\7f95276
++Node: The "Compound Type Specifier Arguments" Section of a Dictionary Entry\7f95952
++Node: The "Compound Type Specifier Description" Section of a Dictionary Entry\7f96519
++Node: The "Constant Value" Section of a Dictionary Entry\7f97070
++Node: The "Description" Section of a Dictionary Entry\7f97524
++Node: The "Examples" Section of a Dictionary Entry\7f98049
++Node: The "Exceptional Situations" Section of a Dictionary Entry\7f98538
++Node: The "Initial Value" Section of a Dictionary Entry\7f99379
++Node: The "Argument Precedence Order" Section of a Dictionary Entry\7f99903
++Node: The "Method Signature" Section of a Dictionary Entry\7f100431
++Node: The "Name" Section of a Dictionary Entry\7f101967
++Node: The "Notes" Section of a Dictionary Entry\7f104027
++Node: The "Pronunciation" Section of a Dictionary Entry\7f104737
++Node: The "See Also" Section of a Dictionary Entry\7f105552
++Node: The "Side Effects" Section of a Dictionary Entry\7f106027
++Node: The "Supertypes" Section of a Dictionary Entry\7f106459
++Node: The "Syntax" Section of a Dictionary Entry\7f107096
++Node: Special "Syntax" Notations for Overloaded Operators\7f108285
++Node: Naming Conventions for Rest Parameters\7f109438
++Node: Requiring Non-Null Rest Parameters in The "Syntax" Section\7f110297
++Node: Return values in The "Syntax" Section\7f111197
++Node: No Arguments or Values in The "Syntax" Section\7f111887
++Node: Unconditional Transfer of Control in The "Syntax" Section\7f112488
++Node: The "Valid Context" Section of a Dictionary Entry\7f113058
++Node: The "Value Type" Section of a Dictionary Entry\7f113699
++Node: Conformance\7f114054
++Node: Conforming Implementations\7f114470
++Node: Required Language Features\7f115075
++Node: Documentation of Implementation-Dependent Features\7f115704
++Node: Documentation of Extensions\7f116431
++Node: Treatment of Exceptional Situations\7f117074
++Node: Resolution of Apparent Conflicts in Exceptional Situations\7f117473
++Node: Examples of Resolution of Apparent Conflict in Exceptional Situations\7f118143
++Node: Conformance Statement\7f119147
++Node: Conforming Programs\7f120130
++Node: Use of Implementation-Defined Language Features\7f121091
++Node: Use of Read-Time Conditionals\7f122307
++Node: Language Extensions\7f123458
++Node: Language Subsets\7f125871
++Node: Deprecated Language Features\7f126588
++Node: Deprecated Functions\7f127429
++Node: Deprecated Argument Conventions\7f127987
++Node: Deprecated Variables\7f128996
++Node: Deprecated Reader Syntax\7f129245
++Node: Symbols in the COMMON-LISP Package\7f129716
++Node: Syntax\7f152216
++Node: Character Syntax\7f152460
++Node: Readtables\7f153213
++Node: The Current Readtable\7f154046
++Node: The Standard Readtable\7f154631
++Node: The Initial Readtable\7f155168
++Node: Variables that affect the Lisp Reader\7f155623
++Node: Standard Characters\7f156176
++Node: Character Syntax Types\7f160623
++Node: Constituent Characters\7f164557
++Node: Constituent Traits\7f165172
++Node: Invalid Characters\7f168716
++Node: Macro Characters\7f169264
++Node: Multiple Escape Characters\7f172038
++Node: Examples of Multiple Escape Characters\7f172693
++Node: Single Escape Character\7f173198
++Node: Examples of Single Escape Characters\7f173693
++Node: Whitespace Characters\7f174187
++Node: Examples of Whitespace Characters\7f174536
++Node: Reader Algorithm\7f174902
++Node: Interpretation of Tokens\7f181408
++Node: Numbers as Tokens\7f181768
++Node: Potential Numbers as Tokens\7f182872
++Node: Escape Characters and Potential Numbers\7f185462
++Node: Examples of Potential Numbers\7f186227
++Node: Constructing Numbers from Tokens\7f187350
++Node: Syntax of a Rational\7f188151
++Node: Syntax of an Integer\7f188366
++Node: Syntax of a Ratio\7f188957
++Node: Syntax of a Float\7f190086
++Node: Syntax of a Complex\7f192583
++Node: The Consing Dot\7f193639
++Node: Symbols as Tokens\7f194163
++Node: Valid Patterns for Tokens\7f197656
++Node: Package System Consistency Rules\7f200995
++Node: Standard Macro Characters\7f202656
++Node: Left-Parenthesis\7f203428
++Node: Right-Parenthesis\7f204958
++Node: Single-Quote\7f205285
++Node: Examples of Single-Quote\7f205743
++Node: Semicolon\7f205980
++Node: Examples of Semicolon\7f206544
++Node: Notes about Style for Semicolon\7f206771
++Node: Use of Single Semicolon\7f207188
++Node: Use of Double Semicolon\7f207779
++Node: Use of Triple Semicolon\7f208277
++Node: Use of Quadruple Semicolon\7f208657
++Node: Examples of Style for Semicolon\7f209167
++Node: Double-Quote\7f210140
++Node: Backquote\7f211585
++Node: Notes about Backquote\7f215509
++Node: Comma\7f216580
++Node: Sharpsign\7f216871
++Node: Sharpsign Backslash\7f221424
++Node: Sharpsign Single-Quote\7f222587
++Node: Sharpsign Left-Parenthesis\7f223060
++Node: Sharpsign Asterisk\7f224580
++Node: Examples of Sharpsign Asterisk\7f225844
++Node: Sharpsign Colon\7f226262
++Node: Sharpsign Dot\7f226778
++Node: Sharpsign B\7f227456
++Node: Sharpsign O\7f227847
++Node: Sharpsign X\7f228254
++Node: Sharpsign R\7f228760
++Node: Sharpsign C\7f230054
++Node: Sharpsign A\7f231132
++Node: Sharpsign S\7f232329
++Node: Sharpsign P\7f233436
++Node: Sharpsign Equal-Sign\7f233853
++Node: Sharpsign Sharpsign\7f234374
++Node: Sharpsign Plus\7f235443
++Node: Sharpsign Minus\7f236485
++Node: Sharpsign Vertical-Bar\7f236845
++Node: Examples of Sharpsign Vertical-Bar\7f237212
++Node: Notes about Style for Sharpsign Vertical-Bar\7f240203
++Node: Sharpsign Less-Than-Sign\7f241173
++Node: Sharpsign Whitespace\7f241611
++Node: Sharpsign Right-Parenthesis\7f241998
++Node: Re-Reading Abbreviated Expressions\7f242298
++Node: Evaluation and Compilation\7f242791
++Node: Evaluation\7f243172
++Node: Introduction to Environments\7f244460
++Node: The Global Environment\7f245318
++Node: Dynamic Environments\7f245969
++Node: Lexical Environments\7f247128
++Node: The Null Lexical Environment\7f248353
++Node: Environment Objects\7f248867
++Node: The Evaluation Model\7f249834
++Node: Form Evaluation\7f250529
++Node: Symbols as Forms\7f250832
++Node: Lexical Variables\7f252879
++Node: Dynamic Variables\7f253910
++Node: Constant Variables\7f255655
++Node: Symbols Naming Both Lexical and Dynamic Variables\7f256371
++Node: Conses as Forms\7f257223
++Node: Special Forms\7f258170
++Node: Macro Forms\7f259683
++Node: Function Forms\7f261508
++Node: Lambda Forms\7f263957
++Node: Self-Evaluating Objects\7f264615
++Node: Examples of Self-Evaluating Objects\7f265337
++Node: Lambda Expressions\7f265798
++Node: Closures and Lexical Binding\7f266437
++Node: Shadowing\7f270193
++Node: Extent\7f273365
++Node: Return Values\7f275631
++Node: Compilation\7f276972
++Node: Compiler Terminology\7f277279
++Node: Compilation Semantics\7f281572
++Node: Compiler Macros\7f282255
++Node: Purpose of Compiler Macros\7f283915
++Node: Naming of Compiler Macros\7f285630
++Node: When Compiler Macros Are Used\7f286608
++Node: Notes about the Implementation of Compiler Macros\7f288249
++Node: Minimal Compilation\7f289366
++Node: Semantic Constraints\7f290542
++Node: File Compilation\7f294196
++Node: Processing of Top Level Forms\7f296169
++Node: Processing of Defining Macros\7f300631
++Node: Constraints on Macros and Compiler Macros\7f303137
++Node: Literal Objects in Compiled Files\7f303937
++Node: Externalizable Objects\7f305347
++Node: Similarity of Literal Objects\7f306975
++Node: Similarity of Aggregate Objects\7f307219
++Node: Definition of Similarity\7f307803
++Node: Extensions to Similarity Rules\7f312671
++Node: Additional Constraints on Externalizable Objects\7f313547
++Node: Exceptional Situations in the Compiler\7f318284
++Node: Declarations\7f320383
++Node: Minimal Declaration Processing Requirements\7f321170
++Node: Declaration Specifiers\7f322336
++Node: Declaration Identifiers\7f322838
++Node: Shorthand notation for Type Declarations\7f323653
++Node: Declaration Scope\7f324020
++Node: Examples of Declaration Scope\7f325993
++Node: Lambda Lists\7f329193
++Node: Ordinary Lambda Lists\7f331623
++Node: Specifiers for the required parameters\7f334087
++Node: Specifiers for optional parameters\7f334937
++Node: A specifier for a rest parameter\7f336118
++Node: Specifiers for keyword parameters\7f337123
++Node: Suppressing Keyword Argument Checking\7f341146
++Node: Examples of Suppressing Keyword Argument Checking\7f341837
++Node: Specifiers for &aux variables\7f343079
++Node: Examples of Ordinary Lambda Lists\7f343930
++Node: Generic Function Lambda Lists\7f347871
++Node: Specialized Lambda Lists\7f349198
++Node: Macro Lambda Lists\7f350503
++Node: Destructuring by Lambda Lists\7f355787
++Node: Data-directed Destructuring by Lambda Lists\7f356978
++Node: Examples of Data-directed Destructuring by Lambda Lists\7f357525
++Node: Lambda-list-directed Destructuring by Lambda Lists\7f358238
++Node: Destructuring Lambda Lists\7f361299
++Node: Boa Lambda Lists\7f362531
++Node: Defsetf Lambda Lists\7f366409
++Node: Deftype Lambda Lists\7f367323
++Node: Define-modify-macro Lambda Lists\7f367941
++Node: Define-method-combination Arguments Lambda Lists\7f368808
++Node: Syntactic Interaction of Documentation Strings and Declarations\7f369653
++Node: Error Checking in Function Calls\7f370404
++Node: Argument Mismatch Detection\7f370675
++Node: Safe and Unsafe Calls\7f371164
++Node: Error Detection Time in Safe Calls\7f373927
++Node: Too Few Arguments\7f374510
++Node: Too Many Arguments\7f375035
++Node: Unrecognized Keyword Arguments\7f375683
++Node: Invalid Keyword Arguments\7f376303
++Node: Odd Number of Keyword Arguments\7f376907
++Node: Destructuring Mismatch\7f377493
++Node: Errors When Calling a Next Method\7f378030
++Node: Traversal Rules and Side Effects\7f379005
++Node: Destructive Operations\7f380251
++Node: Modification of Literal Objects\7f380576
++Node: Transfer of Control during a Destructive Operation\7f382974
++Node: Examples of Transfer of Control during a Destructive Operation\7f383471
++Node: Evaluation and Compilation Dictionary\7f384353
++Node: lambda (Symbol)\7f385036
++Node: lambda\7f386238
++Node: compile\7f387360
++Node: eval\7f390581
++Node: eval-when\7f392523
++Node: load-time-value\7f398966
++Node: quote\7f404784
++Node: compiler-macro-function\7f406368
++Node: define-compiler-macro\7f407339
++Node: defmacro\7f414831
++Node: macro-function\7f421014
++Node: macroexpand\7f423270
++Node: define-symbol-macro\7f428337
++Node: symbol-macrolet\7f430903
++Node: *macroexpand-hook*\7f434034
++Node: proclaim\7f436300
++Node: declaim\7f438423
++Node: declare\7f439236
++Node: ignore\7f443268
++Node: dynamic-extent\7f445305
++Node: type\7f451698
++Node: inline\7f458475
++Node: ftype\7f462301
++Node: declaration\7f463835
++Node: optimize\7f464763
++Node: special\7f466919
++Node: locally\7f471407
++Node: the\7f473583
++Node: special-operator-p\7f475991
++Node: constantp\7f476912
++Node: Types and Classes\7f479952
++Node: Introduction (Types and Classes)\7f480214
++Node: Types\7f482372
++Node: Data Type Definition\7f482584
++Node: Type Relationships\7f483704
++Node: Type Specifiers\7f485629
++Node: Classes\7f493865
++Node: Introduction to Classes\7f494726
++Node: Standard Metaclasses\7f499454
++Node: Defining Classes\7f500413
++Node: Creating Instances of Classes\7f502085
++Node: Inheritance\7f502876
++Node: Examples of Inheritance\7f503340
++Node: Inheritance of Class Options\7f504317
++Node: Determining the Class Precedence List\7f505137
++Node: Topological Sorting\7f507197
++Node: Examples of Class Precedence List Determination\7f509630
++Node: Redefining Classes\7f513184
++Node: Modifying the Structure of Instances\7f516288
++Node: Initializing Newly Added Local Slots (Redefining Classes)\7f517473
++Node: Customizing Class Redefinition\7f519374
++Node: Integrating Types and Classes\7f520453
++Node: Types and Classes Dictionary\7f526717
++Node: nil (Type)\7f527486
++Node: boolean\7f527942
++Node: function (System Class)\7f528742
++Node: compiled-function\7f533458
++Node: generic-function\7f534297
++Node: standard-generic-function\7f535334
++Node: class\7f535857
++Node: built-in-class\7f536393
++Node: structure-class\7f537319
++Node: standard-class\7f537734
++Node: method\7f538132
++Node: standard-method\7f539271
++Node: structure-object\7f539702
++Node: standard-object\7f540301
++Node: method-combination\7f540739
++Node: t (System Class)\7f541398
++Node: satisfies\7f541764
++Node: member (Type Specifier)\7f542937
++Node: not (Type Specifier)\7f543952
++Node: and (Type Specifier)\7f544668
++Node: or (Type Specifier)\7f545506
++Node: values (Type Specifier)\7f546537
++Node: eql (Type Specifier)\7f547804
++Node: coerce\7f548579
++Node: deftype\7f553241
++Node: subtypep\7f556394
++Node: type-of\7f563359
++Node: typep\7f566275
++Node: type-error\7f569683
++Node: type-error-datum\7f570386
++Node: simple-type-error\7f571732
++Node: Data and Control Flow\7f572476
++Node: Generalized Reference\7f572741
++Node: Overview of Places and Generalized Reference\7f573068
++Node: Evaluation of Subforms to Places\7f575385
++Node: Examples of Evaluation of Subforms to Places\7f577890
++Node: Setf Expansions\7f578616
++Node: Examples of Setf Expansions\7f580686
++Node: Kinds of Places\7f582567
++Node: Variable Names as Places\7f583205
++Node: Function Call Forms as Places\7f583483
++Node: VALUES Forms as Places\7f591603
++Node: THE Forms as Places\7f592741
++Node: APPLY Forms as Places\7f593200
++Node: Setf Expansions and Places\7f594569
++Node: Macro Forms as Places\7f594989
++Node: Symbol Macros as Places\7f595523
++Node: Other Compound Forms as Places\7f595902
++Node: Treatment of Other Macros Based on SETF\7f596933
++Node: Transfer of Control to an Exit Point\7f598349
++Node: Data and Control Flow Dictionary\7f600484
++Node: apply\7f601718
++Node: defun\7f603751
++Node: fdefinition\7f607498
++Node: fboundp\7f609345
++Node: fmakunbound\7f611158
++Node: flet\7f612143
++Node: funcall\7f620017
++Node: function (Special Operator)\7f621726
++Node: function-lambda-expression\7f623809
++Node: functionp\7f627057
++Node: compiled-function-p\7f628015
++Node: call-arguments-limit\7f629162
++Node: lambda-list-keywords\7f629795
++Node: lambda-parameters-limit\7f630538
++Node: defconstant\7f631189
++Node: defparameter\7f634035
++Node: destructuring-bind\7f640614
++Node: let\7f641937
++Node: progv\7f645256
++Node: setq\7f646765
++Node: psetq\7f648453
++Node: block\7f650443
++Node: catch\7f652255
++Node: go\7f654948
++Node: return-from\7f656390
++Node: return\7f658674
++Node: tagbody\7f659667
++Node: throw\7f662078
++Node: unwind-protect\7f664746
++Node: nil\7f669983
++Node: not\7f670378
++Node: t\7f671228
++Node: eq\7f672215
++Node: eql\7f674637
++Node: equal\7f677618
++Node: equalp\7f681224
++Node: identity\7f685165
++Node: complement\7f685924
++Node: constantly\7f687628
++Node: every\7f688602
++Node: and\7f691597
++Node: cond\7f693357
++Node: if\7f695002
++Node: or\7f696259
++Node: when\7f697675
++Node: case\7f700275
++Node: typecase\7f705384
++Node: multiple-value-bind\7f710964
++Node: multiple-value-call\7f712831
++Node: multiple-value-list\7f714087
++Node: multiple-value-prog1\7f714908
++Node: multiple-value-setq\7f715865
++Node: values\7f717479
++Node: values-list\7f719415
++Node: multiple-values-limit\7f720397
++Node: nth-value\7f721223
++Node: prog\7f722516
++Node: prog1\7f726268
++Node: progn\7f728427
++Node: define-modify-macro\7f729814
++Node: defsetf\7f732298
++Node: define-setf-expander\7f738441
++Node: get-setf-expansion\7f743277
++Node: setf\7f745030
++Node: shiftf\7f747494
++Node: rotatef\7f750101
++Node: control-error\7f751822
++Node: program-error\7f752443
++Node: undefined-function\7f752989
++Node: Iteration\7f753594
++Node: The LOOP Facility\7f753768
++Node: Overview of the Loop Facility\7f754234
++Node: Simple vs Extended Loop\7f755015
++Node: Simple Loop\7f755316
++Node: Extended Loop\7f756009
++Node: Loop Keywords\7f756640
++Node: Parsing Loop Clauses\7f757574
++Node: Expanding Loop Forms\7f759197
++Node: Summary of Loop Clauses\7f761894
++Node: Summary of Variable Initialization and Stepping Clauses\7f762195
++Node: Summary of Value Accumulation Clauses\7f763028
++Node: Summary of Termination Test Clauses\7f764818
++Node: Summary of Unconditional Execution Clauses\7f766525
++Node: Summary of Conditional Execution Clauses\7f767245
++Node: Summary of Miscellaneous Clauses\7f768337
++Node: Order of Execution\7f769030
++Node: Destructuring\7f770902
++Node: Restrictions on Side-Effects\7f775322
++Node: Variable Initialization and Stepping Clauses\7f775559
++Node: Iteration Control\7f776411
++Node: The for-as-arithmetic subclause\7f779325
++Node: Examples of for-as-arithmetic subclause\7f783173
++Node: The for-as-in-list subclause\7f783926
++Node: Examples of for-as-in-list subclause\7f784720
++Node: The for-as-on-list subclause\7f785509
++Node: Examples of for-as-on-list subclause\7f786262
++Node: The for-as-equals-then subclause\7f786882
++Node: Examples of for-as-equals-then subclause\7f787640
++Node: The for-as-across subclause\7f788097
++Node: Examples of for-as-across subclause\7f788799
++Node: The for-as-hash subclause\7f789186
++Node: The for-as-package subclause\7f791408
++Node: Examples of for-as-package subclause\7f793972
++Node: Local Variable Initializations\7f794593
++Node: Examples of WITH clause\7f797436
++Node: Value Accumulation Clauses\7f798478
++Node: Examples of COLLECT clause\7f804315
++Node: Examples of APPEND and NCONC clauses\7f805068
++Node: Examples of COUNT clause\7f805689
++Node: Examples of MAXIMIZE and MINIMIZE clauses\7f806011
++Node: Examples of SUM clause\7f806882
++Node: Termination Test Clauses\7f807288
++Node: Examples of REPEAT clause\7f811458
++Node: Examples of ALWAYS\7f811985
++Node: Examples of WHILE and UNTIL clauses\7f814008
++Node: Unconditional Execution Clauses\7f814803
++Node: Examples of unconditional execution\7f815696
++Node: Conditional Execution Clauses\7f816192
++Node: Examples of WHEN clause\7f817897
++Node: Miscellaneous Clauses\7f819576
++Node: Control Transfer Clauses\7f819891
++Node: Examples of NAMED clause\7f820719
++Node: Initial and Final Execution\7f821110
++Node: Examples of Miscellaneous Loop Features\7f822739
++Node: Examples of clause grouping\7f823809
++Node: Notes about Loop\7f826256
++Node: Iteration Dictionary\7f827278
++Node: do\7f827483
++Node: dotimes\7f835924
++Node: dolist\7f839379
++Node: loop\7f841601
++Node: loop-finish\7f847061
++Node: Objects\7f849886
++Node: Object Creation and Initialization\7f850190
++Node: Initialization Arguments\7f854102
++Node: Declaring the Validity of Initialization Arguments\7f856709
++Node: Defaulting of Initialization Arguments\7f860208
++Node: Rules for Initialization Arguments\7f863479
++Node: Shared-Initialize\7f867330
++Node: Initialize-Instance\7f870012
++Node: Definitions of Make-Instance and Initialize-Instance\7f872747
++Node: Changing the Class of an Instance\7f874845
++Node: Modifying the Structure of the Instance\7f876097
++Node: Initializing Newly Added Local Slots (Changing the Class of an Instance)\7f877035
++Node: Customizing the Change of Class of an Instance\7f878772
++Node: Reinitializing an Instance\7f879575
++Node: Customizing Reinitialization\7f881038
++Node: Meta-Objects\7f881702
++Node: Standard Meta-objects\7f882228
++Node: Slots\7f883267
++Node: Introduction to Slots\7f883491
++Node: Accessing Slots\7f886129
++Node: Inheritance of Slots and Slot Options\7f888706
++Node: Generic Functions and Methods\7f893448
++Node: Introduction to Generic Functions\7f893943
++Node: Introduction to Methods\7f897445
++Node: Agreement on Parameter Specializers and Qualifiers\7f903907
++Node: Congruent Lambda-lists for all Methods of a Generic Function\7f904904
++Node: Keyword Arguments in Generic Functions and Methods\7f907046
++Node: Examples of Keyword Arguments in Generic Functions and Methods\7f908738
++Node: Method Selection and Combination\7f910077
++Node: Determining the Effective Method\7f911543
++Node: Selecting the Applicable Methods\7f912137
++Node: Sorting the Applicable Methods by Precedence Order\7f912478
++Node: Applying method combination to the sorted list of applicable methods\7f914543
++Node: Standard Method Combination\7f916710
++Node: Declarative Method Combination\7f921657
++Node: Built-in Method Combination Types\7f922568
++Node: Inheritance of Methods\7f926641
++Node: Objects Dictionary\7f927212
++Node: function-keywords\7f928220
++Node: ensure-generic-function\7f929847
++Node: allocate-instance\7f933155
++Node: reinitialize-instance\7f934682
++Node: shared-initialize\7f936917
++Node: update-instance-for-different-class\7f941425
++Node: update-instance-for-redefined-class\7f945563
++Node: change-class\7f950836
++Node: slot-boundp\7f954857
++Node: slot-exists-p\7f956639
++Node: slot-makunbound\7f957441
++Node: slot-missing\7f958979
++Node: slot-unbound\7f961318
++Node: slot-value\7f962990
++Node: method-qualifiers\7f965801
++Node: no-applicable-method\7f966598
++Node: no-next-method\7f967723
++Node: remove-method\7f968926
++Node: make-instance\7f969748
++Node: make-instances-obsolete\7f971163
++Node: make-load-form\7f972478
++Node: make-load-form-saving-slots\7f983995
++Node: with-accessors\7f985943
++Node: with-slots\7f988882
++Node: defclass\7f992251
++Node: defgeneric\7f1004461
++Node: defmethod\7f1015148
++Node: find-class\7f1022041
++Node: next-method-p\7f1024020
++Node: call-method\7f1025125
++Node: call-next-method\7f1028141
++Node: compute-applicable-methods\7f1031202
++Node: define-method-combination\7f1032264
++Node: find-method\7f1056016
++Node: add-method\7f1058673
++Node: initialize-instance\7f1059907
++Node: class-name\7f1061699
++Node: setf class-name\7f1062456
++Node: class-of\7f1063085
++Node: unbound-slot\7f1064089
++Node: unbound-slot-instance\7f1064757
++Node: Structures\7f1065325
++Node: Structures Dictionary\7f1065470
++Node: defstruct\7f1065650
++Node: copy-structure\7f1106426
++Node: Conditions\7f1107022
++Node: Condition System Concepts\7f1107197
++Node: Condition Types\7f1110806
++Node: Serious Conditions\7f1113222
++Node: Creating Conditions\7f1113603
++Node: Condition Designators\7f1114156
++Node: Printing Conditions\7f1115996
++Node: Recommended Style in Condition Reporting\7f1117339
++Node: Capitalization and Punctuation in Condition Reports\7f1118468
++Node: Leading and Trailing Newlines in Condition Reports\7f1119191
++Node: Embedded Newlines in Condition Reports\7f1120153
++Node: Note about Tabs in Condition Reports\7f1121326
++Node: Mentioning Containing Function in Condition Reports\7f1121951
++Node: Signaling and Handling Conditions\7f1122436
++Node: Signaling\7f1124701
++Node: Resignaling a Condition\7f1125890
++Node: Restarts\7f1126950
++Node: Interactive Use of Restarts\7f1129127
++Node: Interfaces to Restarts\7f1130323
++Node: Restart Tests\7f1131218
++Node: Associating a Restart with a Condition\7f1131698
++Node: Assertions\7f1132597
++Node: Notes about the Condition System`s Background\7f1133093
++Node: Conditions Dictionary\7f1133584
++Node: condition\7f1134599
++Node: warning\7f1136393
++Node: style-warning\7f1136750
++Node: serious-condition\7f1137954
++Node: error (Condition Type)\7f1139187
++Node: cell-error\7f1139552
++Node: cell-error-name\7f1140158
++Node: parse-error\7f1141153
++Node: storage-condition\7f1141623
++Node: assert\7f1143209
++Node: error\7f1147170
++Node: cerror\7f1150866
++Node: check-type\7f1155996
++Node: simple-error\7f1160285
++Node: invalid-method-error\7f1160784
++Node: method-combination-error\7f1162341
++Node: signal\7f1163471
++Node: simple-condition\7f1166032
++Node: simple-condition-format-control\7f1166961
++Node: warn\7f1168341
++Node: simple-warning\7f1170775
++Node: invoke-debugger\7f1171248
++Node: break\7f1172750
++Node: *debugger-hook*\7f1175191
++Node: *break-on-signals*\7f1177686
++Node: handler-bind\7f1180326
++Node: handler-case\7f1182917
++Node: ignore-errors\7f1188118
++Node: define-condition\7f1190012
++Node: make-condition\7f1201764
++Node: restart\7f1203073
++Node: compute-restarts\7f1203705
++Node: find-restart\7f1206469
++Node: invoke-restart\7f1208474
++Node: invoke-restart-interactively\7f1210215
++Node: restart-bind\7f1212534
++Node: restart-case\7f1216582
++Node: restart-name\7f1226400
++Node: with-condition-restarts\7f1227366
++Node: with-simple-restart\7f1228703
++Node: abort (Restart)\7f1232191
++Node: continue\7f1233185
++Node: muffle-warning\7f1234346
++Node: store-value\7f1235969
++Node: use-value\7f1237206
++Node: abort (Function)\7f1237843
++Node: Symbols\7f1244179
++Node: Symbol Concepts\7f1244335
++Node: Symbols Dictionary\7f1244920
++Node: symbol\7f1245350
++Node: keyword\7f1250363
++Node: symbolp\7f1250963
++Node: keywordp\7f1251717
++Node: make-symbol\7f1252601
++Node: copy-symbol\7f1254216
++Node: gensym\7f1256661
++Node: *gensym-counter*\7f1258973
++Node: gentemp\7f1259743
++Node: symbol-function\7f1262595
++Node: symbol-name\7f1265564
++Node: symbol-package\7f1266267
++Node: symbol-plist\7f1268124
++Node: symbol-value\7f1269340
++Node: get\7f1271355
++Node: remprop\7f1274615
++Node: boundp\7f1277243
++Node: makunbound\7f1278237
++Node: set\7f1279004
++Node: unbound-variable\7f1280748
++Node: Packages\7f1281319
++Node: Package Concepts\7f1281486
++Node: Introduction to Packages\7f1281699
++Node: Package Names and Nicknames\7f1283498
++Node: Symbols in a Package\7f1284269
++Node: Internal and External Symbols\7f1284482
++Node: Package Inheritance\7f1285397
++Node: Accessibility of Symbols in a Package\7f1286347
++Node: Locating a Symbol in a Package\7f1287960
++Node: Prevention of Name Conflicts in Packages\7f1288579
++Node: Standardized Packages\7f1291943
++Node: The COMMON-LISP Package\7f1292882
++Node: Constraints on the COMMON-LISP Package for Conforming Implementations\7f1294217
++Node: Constraints on the COMMON-LISP Package for Conforming Programs\7f1295763
++Node: Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs\7f1297874
++Node: The COMMON-LISP-USER Package\7f1299721
++Node: The KEYWORD Package\7f1300320
++Node: Interning a Symbol in the KEYWORD Package\7f1301183
++Node: Notes about The KEYWORD Package\7f1301773
++Node: Implementation-Defined Packages\7f1302696
++Node: Packages Dictionary\7f1303265
++Node: package\7f1303937
++Node: export\7f1304390
++Node: find-symbol\7f1307472
++Node: find-package\7f1309901
++Node: find-all-symbols\7f1310927
++Node: import\7f1311923
++Node: list-all-packages\7f1314430
++Node: rename-package\7f1315104
++Node: shadow\7f1316392
++Node: shadowing-import\7f1318770
++Node: delete-package\7f1320702
++Node: make-package\7f1325721
++Node: with-package-iterator\7f1327773
++Node: unexport\7f1333420
++Node: unintern\7f1334980
++Node: in-package\7f1337075
++Node: unuse-package\7f1338048
++Node: use-package\7f1339465
++Node: defpackage\7f1341554
++Node: do-symbols\7f1349903
++Node: intern\7f1353485
++Node: package-name\7f1355830
++Node: package-nicknames\7f1356886
++Node: package-shadowing-symbols\7f1357665
++Node: package-use-list\7f1358897
++Node: package-used-by-list\7f1359795
++Node: packagep\7f1360669
++Node: *package*\7f1361322
++Node: package-error\7f1362695
++Node: package-error-package\7f1363354
++Node: Numbers (Numbers)\7f1364052
++Node: Number Concepts\7f1364218
++Node: Numeric Operations\7f1364596
++Node: Associativity and Commutativity in Numeric Operations\7f1366616
++Node: Examples of Associativity and Commutativity in Numeric Operations\7f1367739
++Node: Contagion in Numeric Operations\7f1369399
++Node: Viewing Integers as Bits and Bytes\7f1369916
++Node: Logical Operations on Integers\7f1370170
++Node: Byte Operations on Integers\7f1371250
++Node: Implementation-Dependent Numeric Constants\7f1372046
++Node: Rational Computations\7f1373233
++Node: Rule of Unbounded Rational Precision\7f1373645
++Node: Rule of Canonical Representation for Rationals\7f1374100
++Node: Rule of Float Substitutability\7f1375211
++Node: Floating-point Computations\7f1377613
++Node: Rule of Float and Rational Contagion\7f1378093
++Node: Examples of Rule of Float and Rational Contagion\7f1378990
++Node: Rule of Float Approximation\7f1380054
++Node: Rule of Float Underflow and Overflow\7f1381236
++Node: Rule of Float Precision Contagion\7f1381678
++Node: Complex Computations\7f1382029
++Node: Rule of Complex Substitutability\7f1382516
++Node: Rule of Complex Contagion\7f1382917
++Node: Rule of Canonical Representation for Complex Rationals\7f1383324
++Node: Examples of Rule of Canonical Representation for Complex Rationals\7f1384188
++Node: Principal Values and Branch Cuts\7f1384853
++Node: Interval Designators\7f1386887
++Node: Random-State Operations\7f1388402
++Node: Numbers Dictionary\7f1388752
++Node: number\7f1390123
++Node: complex (System Class)\7f1391285
++Node: real\7f1393529
++Node: float (System Class)\7f1394688
++Node: short-float\7f1397350
++Node: rational (System Class)\7f1401340
++Node: ratio\7f1402376
++Node: integer\7f1402975
++Node: signed-byte\7f1404347
++Node: unsigned-byte\7f1405384
++Node: mod (System Class)\7f1406514
++Node: bit (System Class)\7f1407260
++Node: fixnum\7f1407621
++Node: bignum\7f1408112
++Node: =\7f1408418
++Node: max\7f1411823
++Node: minusp\7f1413901
++Node: zerop\7f1414833
++Node: floor\7f1415820
++Node: sin\7f1420683
++Node: asin\7f1421514
++Node: pi\7f1428348
++Node: sinh\7f1429458
++Node: *\7f1434005
++Node: +\7f1434843
++Node: -\7f1435644
++Node: /\7f1436805
++Node: 1+\7f1438436
++Node: abs\7f1439402
++Node: evenp\7f1440849
++Node: exp\7f1441767
++Node: gcd\7f1444968
++Node: incf\7f1446004
++Node: lcm\7f1447200
++Node: log\7f1448318
++Node: mod (Function)\7f1450488
++Node: signum\7f1451810
++Node: sqrt\7f1453482
++Node: random-state\7f1455567
++Node: make-random-state\7f1456412
++Node: random\7f1458355
++Node: random-state-p\7f1459856
++Node: *random-state*\7f1460629
++Node: numberp\7f1462059
++Node: cis\7f1462734
++Node: complex\7f1463310
++Node: complexp\7f1464963
++Node: conjugate\7f1465617
++Node: phase\7f1466396
++Node: realpart\7f1467956
++Node: upgraded-complex-part-type\7f1468955
++Node: realp\7f1469939
++Node: numerator\7f1470572
++Node: rational (Function)\7f1471637
++Node: rationalp\7f1473201
++Node: ash\7f1473870
++Node: integer-length\7f1475377
++Node: integerp\7f1477041
++Node: parse-integer\7f1477691
++Node: boole\7f1479808
++Node: boole-1\7f1484328
++Node: logand\7f1485439
++Node: logbitp\7f1489419
++Node: logcount\7f1490614
++Node: logtest\7f1492033
++Node: byte\7f1493106
++Node: deposit-field\7f1494361
++Node: dpb\7f1495391
++Node: ldb\7f1496839
++Node: ldb-test\7f1498449
++Node: mask-field\7f1499290
++Node: most-positive-fixnum\7f1500948
++Node: decode-float\7f1501622
++Node: float\7f1507401
++Node: floatp\7f1508340
++Node: most-positive-short-float\7f1508974
++Node: short-float-epsilon\7f1513275
++Node: arithmetic-error\7f1514660
++Node: arithmetic-error-operands\7f1515414
++Node: division-by-zero\7f1516335
++Node: floating-point-invalid-operation\7f1516813
++Node: floating-point-inexact\7f1517601
++Node: floating-point-overflow\7f1518356
++Node: floating-point-underflow\7f1518865
++Node: Characters\7f1519348
++Node: Character Concepts\7f1519524
++Node: Introduction to Characters\7f1520018
++Node: Introduction to Scripts and Repertoires\7f1521423
++Node: Character Scripts\7f1521731
++Node: Character Repertoires\7f1522744
++Node: Character Attributes\7f1523655
++Node: Character Categories\7f1524663
++Node: Graphic Characters\7f1525886
++Node: Alphabetic Characters\7f1526813
++Node: Characters With Case\7f1527476
++Node: Uppercase Characters\7f1527930
++Node: Lowercase Characters\7f1528385
++Node: Corresponding Characters in the Other Case\7f1528859
++Node: Case of Implementation-Defined Characters\7f1529390
++Node: Numeric Characters\7f1529891
++Node: Alphanumeric Characters\7f1530399
++Node: Digits in a Radix\7f1530718
++Node: Identity of Characters\7f1531446
++Node: Ordering of Characters\7f1531716
++Node: Character Names\7f1533506
++Node: Treatment of Newline during Input and Output\7f1534649
++Node: Character Encodings\7f1535200
++Node: Documentation of Implementation-Defined Scripts\7f1535998
++Node: Characters Dictionary\7f1537469
++Node: character (System Class)\7f1537972
++Node: base-char\7f1538583
++Node: standard-char\7f1540567
++Node: extended-char\7f1541107
++Node: char=\7f1541568
++Node: character\7f1547732
++Node: characterp\7f1548611
++Node: alpha-char-p\7f1549549
++Node: alphanumericp\7f1550720
++Node: digit-char\7f1552115
++Node: digit-char-p\7f1553235
++Node: graphic-char-p\7f1554735
++Node: standard-char-p\7f1555621
++Node: char-upcase\7f1556469
++Node: upper-case-p\7f1558907
++Node: char-code\7f1560456
++Node: char-int\7f1561183
++Node: code-char\7f1562179
++Node: char-code-limit\7f1562941
++Node: char-name\7f1563601
++Node: name-char\7f1565525
++Node: Conses\7f1566403
++Node: Cons Concepts\7f1566551
++Node: Conses as Trees\7f1567087
++Node: General Restrictions on Parameters that must be Trees\7f1568055
++Node: Conses as Lists\7f1568489
++Node: Lists as Association Lists\7f1569888
++Node: Lists as Sets\7f1570415
++Node: General Restrictions on Parameters that must be Lists\7f1570965
++Node: Conses Dictionary\7f1571622
++Node: list (System Class)\7f1572384
++Node: null (System Class)\7f1573618
++Node: cons (System Class)\7f1574110
++Node: atom (Type)\7f1575340
++Node: cons\7f1575580
++Node: consp\7f1576497
++Node: atom\7f1577219
++Node: rplaca\7f1577926
++Node: car\7f1579066
++Node: copy-tree\7f1585451
++Node: sublis\7f1587080
++Node: subst\7f1590826
++Node: tree-equal\7f1595215
++Node: copy-list\7f1596998
++Node: list (Function)\7f1598320
++Node: list-length\7f1599948
++Node: listp\7f1601858
++Node: make-list\7f1602663
++Node: push\7f1603625
++Node: pop\7f1604871
++Node: first\7f1606170
++Node: nth\7f1609047
++Node: endp\7f1610106
++Node: null\7f1611507
++Node: nconc\7f1612317
++Node: append\7f1614458
++Node: revappend\7f1615592
++Node: butlast\7f1617783
++Node: last\7f1619619
++Node: ldiff\7f1621387
++Node: nthcdr\7f1625022
++Node: rest\7f1626157
++Node: member (Function)\7f1627141
++Node: mapc\7f1629444
++Node: acons\7f1633682
++Node: assoc\7f1634701
++Node: copy-alist\7f1637953
++Node: pairlis\7f1639231
++Node: rassoc\7f1640756
++Node: get-properties\7f1642890
++Node: getf\7f1644274
++Node: remf\7f1647145
++Node: intersection\7f1648500
++Node: adjoin\7f1652442
++Node: pushnew\7f1654388
++Node: set-difference\7f1657133
++Node: set-exclusive-or\7f1660510
++Node: subsetp\7f1663608
++Node: union\7f1665634
++Node: Arrays\7f1668735
++Node: Array Concepts\7f1668881
++Node: Array Elements\7f1669069
++Node: Array Indices\7f1669626
++Node: Array Dimensions\7f1670041
++Node: Implementation Limits on Individual Array Dimensions\7f1670631
++Node: Array Rank\7f1671056
++Node: Vectors\7f1671541
++Node: Fill Pointers\7f1671747
++Node: Multidimensional Arrays\7f1672479
++Node: Storage Layout for Multidimensional Arrays\7f1672690
++Node: Implementation Limits on Array Rank\7f1673204
++Node: Specialized Arrays\7f1673578
++Node: Array Upgrading\7f1674894
++Node: Required Kinds of Specialized Arrays\7f1676276
++Node: Arrays Dictionary\7f1677769
++Node: array\7f1678584
++Node: simple-array\7f1681636
++Node: vector (System Class)\7f1683589
++Node: simple-vector\7f1685689
++Node: bit-vector\7f1686702
++Node: simple-bit-vector\7f1687747
++Node: make-array\7f1688733
++Node: adjust-array\7f1697412
++Node: adjustable-array-p\7f1705423
++Node: aref\7f1706399
++Node: array-dimension\7f1708090
++Node: array-dimensions\7f1708957
++Node: array-element-type\7f1709811
++Node: array-has-fill-pointer-p\7f1711203
++Node: array-displacement\7f1712361
++Node: array-in-bounds-p\7f1714042
++Node: array-rank\7f1715223
++Node: array-row-major-index\7f1716001
++Node: array-total-size\7f1717525
++Node: arrayp\7f1718807
++Node: fill-pointer\7f1719570
++Node: row-major-aref\7f1720729
++Node: upgraded-array-element-type\7f1721827
++Node: array-dimension-limit\7f1723434
++Node: array-rank-limit\7f1723963
++Node: array-total-size-limit\7f1724457
++Node: simple-vector-p\7f1725225
++Node: svref\7f1725986
++Node: vector\7f1727060
++Node: vector-pop\7f1727966
++Node: vector-push\7f1729237
++Node: vectorp\7f1732069
++Node: bit (Array)\7f1732777
++Node: bit-and\7f1734123
++Node: bit-vector-p\7f1738320
++Node: simple-bit-vector-p\7f1739125
++Node: Strings\7f1739835
++Node: String Concepts\7f1739988
++Node: Implications of Strings Being Arrays\7f1740204
++Node: Subtypes of STRING\7f1740693
++Node: Strings Dictionary\7f1741100
++Node: string (System Class)\7f1741439
++Node: base-string\7f1742511
++Node: simple-string\7f1743461
++Node: simple-base-string\7f1744504
++Node: simple-string-p\7f1745418
++Node: char\7f1746179
++Node: string\7f1747726
++Node: string-upcase\7f1748993
++Node: string-trim\7f1753054
++Node: string=\7f1754701
++Node: stringp\7f1760241
++Node: make-string\7f1760862
++Node: Sequences\7f1761806
++Node: Sequence Concepts\7f1762003
++Node: General Restrictions on Parameters that must be Sequences\7f1763639
++Node: Rules about Test Functions\7f1764024
++Node: Satisfying a Two-Argument Test\7f1764293
++Node: Examples of Satisfying a Two-Argument Test\7f1766749
++Node: Satisfying a One-Argument Test\7f1768051
++Node: Examples of Satisfying a One-Argument Test\7f1769922
++Node: Sequences Dictionary\7f1770519
++Node: sequence\7f1770958
++Node: copy-seq\7f1771665
++Node: elt\7f1772826
++Node: fill\7f1773912
++Node: make-sequence\7f1775311
++Node: subseq\7f1777425
++Node: map\7f1779522
++Node: map-into\7f1782389
++Node: reduce\7f1785277
++Node: count\7f1788589
++Node: length\7f1790685
++Node: reverse\7f1791676
++Node: sort\7f1793824
++Node: find\7f1799277
++Node: position\7f1801845
++Node: search\7f1804006
++Node: mismatch\7f1805939
++Node: replace\7f1808251
++Node: substitute\7f1810566
++Node: concatenate\7f1816520
++Node: merge\7f1818698
++Node: remove\7f1822848
++Node: remove-duplicates\7f1829260
++Node: Hash Tables\7f1832770
++Node: Hash Table Concepts\7f1832946
++Node: Hash-Table Operations\7f1833178
++Node: Modifying Hash Table Keys\7f1835195
++Node: Visible Modification of Objects with respect to EQ and EQL\7f1837104
++Node: Visible Modification of Objects with respect to EQUAL\7f1837565
++Node: Visible Modification of Conses with respect to EQUAL\7f1838160
++Node: Visible Modification of Bit Vectors and Strings with respect to EQUAL\7f1838647
++Node: Visible Modification of Objects with respect to EQUALP\7f1839308
++Node: Visible Modification of Structures with respect to EQUALP\7f1839918
++Node: Visible Modification of Arrays with respect to EQUALP\7f1840399
++Node: Visible Modification of Hash Tables with respect to EQUALP\7f1841003
++Node: Visible Modifications by Language Extensions\7f1841712
++Node: Hash Tables Dictionary\7f1842472
++Node: hash-table\7f1842894
++Node: make-hash-table\7f1843671
++Node: hash-table-p\7f1846591
++Node: hash-table-count\7f1847338
++Node: hash-table-rehash-size\7f1848737
++Node: hash-table-rehash-threshold\7f1850255
++Node: hash-table-size\7f1851307
++Node: hash-table-test\7f1852085
++Node: gethash\7f1852948
++Node: remhash\7f1855115
++Node: maphash\7f1855963
++Node: with-hash-table-iterator\7f1857806
++Node: clrhash\7f1861243
++Node: sxhash\7f1862097
++Node: Filenames\7f1865079
++Node: Overview of Filenames\7f1865283
++Node: Namestrings as Filenames\7f1866082
++Node: Pathnames as Filenames\7f1867175
++Node: Parsing Namestrings Into Pathnames\7f1870523
++Node: Pathnames\7f1871265
++Node: Pathname Components\7f1871503
++Node: The Pathname Host Component\7f1871991
++Node: The Pathname Device Component\7f1872299
++Node: The Pathname Directory Component\7f1872680
++Node: The Pathname Name Component\7f1873029
++Node: The Pathname Type Component\7f1873346
++Node: The Pathname Version Component\7f1873759
++Node: Interpreting Pathname Component Values\7f1874408
++Node: Strings in Component Values\7f1875612
++Node: Special Characters in Pathname Components\7f1875883
++Node: Case in Pathname Components\7f1876787
++Node: Local Case in Pathname Components\7f1877573
++Node: Common Case in Pathname Components\7f1878372
++Node: Special Pathname Component Values\7f1879165
++Node: NIL as a Component Value\7f1879433
++Node: ->WILD as a Component Value\7f1879977
++Node: ->UNSPECIFIC as a Component Value\7f1881008
++Node: Relation between component values NIL and ->UNSPECIFIC\7f1882399
++Node: Restrictions on Wildcard Pathnames\7f1883246
++Node: Restrictions on Examining Pathname Components\7f1884109
++Node: Restrictions on Examining a Pathname Host Component\7f1885157
++Node: Restrictions on Examining a Pathname Device Component\7f1885596
++Node: Restrictions on Examining a Pathname Directory Component\7f1886300
++Node: Directory Components in Non-Hierarchical File Systems\7f1889825
++Node: Restrictions on Examining a Pathname Name Component\7f1890473
++Node: Restrictions on Examining a Pathname Type Component\7f1890900
++Node: Restrictions on Examining a Pathname Version Component\7f1891328
++Node: Notes about the Pathname Version Component\7f1892307
++Node: Restrictions on Constructing Pathnames\7f1892919
++Node: Merging Pathnames\7f1894461
++Node: Examples of Merging Pathnames\7f1895239
++Node: Logical Pathnames\7f1896119
++Node: Syntax of Logical Pathname Namestrings\7f1896358
++Node: Additional Information about Parsing Logical Pathname Namestrings\7f1898298
++Node: The Host part of a Logical Pathname Namestring\7f1898688
++Node: The Device part of a Logical Pathname Namestring\7f1899333
++Node: The Directory part of a Logical Pathname Namestring\7f1899864
++Node: The Type part of a Logical Pathname Namestring\7f1900462
++Node: The Version part of a Logical Pathname Namestring\7f1900957
++Node: Wildcard Words in a Logical Pathname Namestring\7f1901609
++Node: Lowercase Letters in a Logical Pathname Namestring\7f1902124
++Node: Other Syntax in a Logical Pathname Namestring\7f1902564
++Node: Logical Pathname Components\7f1903079
++Node: Unspecific Components of a Logical Pathname\7f1903386
++Node: Null Strings as Components of a Logical Pathname\7f1903818
++Node: Filenames Dictionary\7f1904180
++Node: pathname (System Class)\7f1904736
++Node: logical-pathname (System Class)\7f1905180
++Node: pathname\7f1905803
++Node: make-pathname\7f1908541
++Node: pathnamep\7f1913066
++Node: pathname-host\7f1913946
++Node: load-logical-pathname-translations\7f1918709
++Node: logical-pathname-translations\7f1920568
++Node: logical-pathname\7f1928617
++Node: *default-pathname-defaults*\7f1929989
++Node: namestring\7f1931212
++Node: parse-namestring\7f1935179
++Node: wild-pathname-p\7f1939941
++Node: pathname-match-p\7f1942074
++Node: translate-logical-pathname\7f1943297
++Node: translate-pathname\7f1945981
++Node: merge-pathnames\7f1952610
++Node: Files\7f1957252
++Node: File System Concepts\7f1957403
++Node: Coercion of Streams to Pathnames\7f1958386
++Node: File Operations on Open and Closed Streams\7f1959323
++Node: Truenames\7f1960561
++Node: Examples of Truenames\7f1961476
++Node: Files Dictionary\7f1963046
++Node: directory\7f1963363
++Node: probe-file\7f1964917
++Node: ensure-directories-exist\7f1966183
++Node: truename\7f1967814
++Node: file-author\7f1970456
++Node: file-write-date\7f1971487
++Node: rename-file\7f1972757
++Node: delete-file\7f1975291
++Node: file-error\7f1977098
++Node: file-error-pathname\7f1977857
++Node: Streams\7f1978406
++Node: Stream Concepts\7f1978556
++Node: Introduction to Streams\7f1978842
++Node: Abstract Classifications of Streams (Introduction to Streams)\7f1980048
++Node: Input\7f1980303
++Node: Open and Closed Streams\7f1981928
++Node: Interactive Streams\7f1982884
++Node: Abstract Classifications of Streams\7f1984280
++Node: File Streams\7f1984512
++Node: Other Subclasses of Stream\7f1985216
++Node: Stream Variables\7f1986431
++Node: Stream Arguments to Standardized Functions\7f1987714
++Node: Restrictions on Composite Streams\7f1990240
++Node: Streams Dictionary\7f1990747
++Node: stream\7f1992024
++Node: broadcast-stream\7f1992617
++Node: concatenated-stream\7f1995402
++Node: echo-stream\7f1996647
++Node: file-stream\7f1997403
++Node: string-stream\7f1997971
++Node: synonym-stream\7f1998594
++Node: two-way-stream\7f1999418
++Node: input-stream-p\7f1999974
++Node: interactive-stream-p\7f2001093
++Node: open-stream-p\7f2002182
++Node: stream-element-type\7f2003082
++Node: streamp\7f2004448
++Node: read-byte\7f2005111
++Node: write-byte\7f2006553
++Node: peek-char\7f2007678
++Node: read-char\7f2010490
++Node: read-char-no-hang\7f2012325
++Node: terpri\7f2014530
++Node: unread-char\7f2016098
++Node: write-char\7f2018071
++Node: read-line\7f2018956
++Node: write-string\7f2020977
++Node: read-sequence\7f2022577
++Node: write-sequence\7f2024878
++Node: file-length\7f2026505
++Node: file-position\7f2027547
++Node: file-string-length\7f2031414
++Node: open\7f2032195
++Node: stream-external-format\7f2041958
++Node: with-open-file\7f2042898
++Node: close\7f2046192
++Node: with-open-stream\7f2048359
++Node: listen\7f2049609
++Node: clear-input\7f2050730
++Node: finish-output\7f2052584
++Node: y-or-n-p\7f2054277
++Node: make-synonym-stream\7f2056926
++Node: synonym-stream-symbol\7f2058034
++Node: broadcast-stream-streams\7f2058559
++Node: make-broadcast-stream\7f2059105
++Node: make-two-way-stream\7f2060171
++Node: two-way-stream-input-stream\7f2061246
++Node: echo-stream-input-stream\7f2062097
++Node: make-echo-stream\7f2062863
++Node: concatenated-stream-streams\7f2063936
++Node: make-concatenated-stream\7f2064720
++Node: get-output-stream-string\7f2065623
++Node: make-string-input-stream\7f2067211
++Node: make-string-output-stream\7f2068378
++Node: with-input-from-string\7f2069505
++Node: with-output-to-string\7f2072065
++Node: *debug-io*\7f2074759
++Node: *terminal-io*\7f2079460
++Node: stream-error\7f2080976
++Node: stream-error-stream\7f2081625
++Node: end-of-file\7f2082370
++Node: Printer\7f2082860
++Node: The Lisp Printer\7f2083061
++Node: Overview of The Lisp Printer\7f2083344
++Node: Multiple Possible Textual Representations\7f2084046
++Node: Printer Escaping\7f2086168
++Node: Printer Dispatching\7f2087092
++Node: Default Print-Object Methods\7f2087658
++Node: Printing Numbers\7f2088569
++Node: Printing Integers\7f2088763
++Node: Printing Ratios\7f2089496
++Node: Printing Floats\7f2090246
++Node: Printing Complexes\7f2091881
++Node: Note about Printing Numbers\7f2092381
++Node: Printing Characters\7f2092729
++Node: Printing Symbols\7f2093668
++Node: Package Prefixes for Symbols\7f2095191
++Node: Effect of Readtable Case on the Lisp Printer\7f2097084
++Node: Examples of Effect of Readtable Case on the Lisp Printer\7f2098937
++Node: Printing Strings\7f2102668
++Node: Printing Lists and Conses\7f2103299
++Node: Printing Bit Vectors\7f2105745
++Node: Printing Other Vectors\7f2106394
++Node: Printing Other Arrays\7f2107892
++Node: Examples of Printing Arrays\7f2110153
++Node: Printing Random States\7f2110877
++Node: Printing Pathnames\7f2111762
++Node: Printing Structures\7f2112349
++Node: Printing Other Objects\7f2113291
++Node: Examples of Printer Behavior\7f2114167
++Node: The Lisp Pretty Printer\7f2115678
++Node: Pretty Printer Concepts\7f2115978
++Node: Dynamic Control of the Arrangement of Output\7f2117592
++Node: Format Directive Interface\7f2120633
++Node: Compiling Format Strings\7f2121881
++Node: Pretty Print Dispatch Tables\7f2122514
++Node: Pretty Printer Margins\7f2124118
++Node: Examples of using the Pretty Printer\7f2124615
++Node: Notes about the Pretty Printer`s Background\7f2136316
++Node: Formatted Output\7f2136837
++Node: FORMAT Basic Output\7f2141488
++Node: Tilde C-> Character\7f2141815
++Node: Tilde Percent-> Newline\7f2143627
++Node: Tilde Ampersand-> Fresh-Line\7f2143981
++Node: Tilde Vertical-Bar-> Page\7f2144391
++Node: Tilde Tilde-> Tilde\7f2144682
++Node: FORMAT Radix Control\7f2144891
++Node: Tilde R-> Radix\7f2145204
++Node: Tilde D-> Decimal\7f2146474
++Node: Tilde B-> Binary\7f2147789
++Node: Tilde O-> Octal\7f2148226
++Node: Tilde X-> Hexadecimal\7f2148664
++Node: FORMAT Floating-Point Printers\7f2149097
++Node: Tilde F-> Fixed-Format Floating-Point\7f2149494
++Node: Tilde E-> Exponential Floating-Point\7f2153585
++Node: Tilde G-> General Floating-Point\7f2158702
++Node: Tilde Dollarsign-> Monetary Floating-Point\7f2160069
++Node: FORMAT Printer Operations\7f2162335
++Node: Tilde A-> Aesthetic\7f2162634
++Node: Tilde S-> Standard\7f2163873
++Node: Tilde W-> Write\7f2164300
++Node: FORMAT Pretty Printer Operations\7f2165108
++Node: Tilde Underscore-> Conditional Newline\7f2165546
++Node: Tilde Less-Than-Sign-> Logical Block\7f2166038
++Node: Tilde I-> Indent\7f2169556
++Node: Tilde Slash-> Call Function\7f2169922
++Node: FORMAT Layout Control\7f2171782
++Node: Tilde T-> Tabulate\7f2172117
++Node: Tilde Less-Than-Sign-> Justification\7f2174342
++Node: Tilde Greater-Than-Sign-> End of Justification\7f2177758
++Node: FORMAT Control-Flow Operations\7f2178091
++Node: Tilde Asterisk-> Go-To\7f2178580
++Node: Tilde Left-Bracket-> Conditional Expression\7f2179473
++Node: Tilde Right-Bracket-> End of Conditional Expression\7f2181983
++Node: Tilde Left-Brace-> Iteration\7f2182384
++Node: Tilde Right-Brace-> End of Iteration\7f2185668
++Node: Tilde Question-Mark-> Recursive Processing\7f2186023
++Node: FORMAT Miscellaneous Operations\7f2187380
++Node: Tilde Left-Paren-> Case Conversion\7f2187743
++Node: Tilde Right-Paren-> End of Case Conversion\7f2189032
++Node: Tilde P-> Plural\7f2189386
++Node: FORMAT Miscellaneous Pseudo-Operations\7f2190168
++Node: Tilde Semicolon-> Clause Separator\7f2190566
++Node: Tilde Circumflex-> Escape Upward\7f2190951
++Node: Tilde Newline-> Ignored Newline\7f2194395
++Node: Additional Information about FORMAT Operations\7f2195807
++Node: Nesting of FORMAT Operations\7f2196251
++Node: Missing and Additional FORMAT Arguments\7f2197642
++Node: Additional FORMAT Parameters\7f2198135
++Node: Undefined FORMAT Modifier Combinations\7f2198536
++Node: Examples of FORMAT\7f2198947
++Node: Notes about FORMAT\7f2202971
++Node: Printer Dictionary\7f2203613
++Node: copy-pprint-dispatch\7f2204382
++Node: formatter\7f2205127
++Node: pprint-dispatch\7f2206324
++Node: pprint-exit-if-list-exhausted\7f2207860
++Node: pprint-fill\7f2209458
++Node: pprint-indent\7f2212901
++Node: pprint-logical-block\7f2214762
++Node: pprint-newline\7f2220256
++Node: pprint-pop\7f2224600
++Node: pprint-tab\7f2227816
++Node: print-object\7f2229206
++Node: print-unreadable-object\7f2233976
++Node: set-pprint-dispatch\7f2235801
++Node: write\7f2237992
++Node: write-to-string\7f2242063
++Node: *print-array*\7f2244275
++Node: *print-base*\7f2245123
++Node: *print-case*\7f2247436
++Node: *print-circle*\7f2249795
++Node: *print-escape*\7f2251416
++Node: *print-gensym*\7f2252557
++Node: *print-level*\7f2253208
++Node: *print-lines*\7f2256293
++Node: *print-miser-width*\7f2257680
++Node: *print-pprint-dispatch*\7f2258226
++Node: *print-pretty*\7f2259536
++Node: *print-readably*\7f2261450
++Node: *print-right-margin*\7f2265227
++Node: print-not-readable\7f2266105
++Node: print-not-readable-object\7f2266951
++Node: format\7f2267527
++Node: Reader\7f2269291
++Node: Reader Concepts\7f2269451
++Node: Dynamic Control of the Lisp Reader\7f2269737
++Node: Effect of Readtable Case on the Lisp Reader\7f2270123
++Node: Examples of Effect of Readtable Case on the Lisp Reader\7f2271168
++Node: Argument Conventions of Some Reader Functions\7f2272689
++Node: The EOF-ERROR-P argument\7f2273010
++Node: The RECURSIVE-P argument\7f2274639
++Node: Reader Dictionary\7f2277410
++Node: readtable\7f2277930
++Node: copy-readtable\7f2278739
++Node: make-dispatch-macro-character\7f2280646
++Node: read\7f2281907
++Node: read-delimited-list\7f2287124
++Node: read-from-string\7f2290835
++Node: readtable-case\7f2293315
++Node: readtablep\7f2294517
++Node: set-dispatch-macro-character\7f2295190
++Node: set-macro-character\7f2298273
++Node: set-syntax-from-char\7f2300843
++Node: with-standard-io-syntax\7f2302962
++Node: *read-base*\7f2304981
++Node: *read-default-float-format*\7f2306336
++Node: *read-eval*\7f2307881
++Node: *read-suppress*\7f2308591
++Node: *readtable*\7f2312240
++Node: reader-error\7f2313300
++Node: System Construction\7f2313834
++Node: System Construction Concepts\7f2314050
++Node: Loading\7f2314302
++Node: Features\7f2315259
++Node: Feature Expressions\7f2315768
++Node: Examples of Feature Expressions\7f2316791
++Node: System Construction Dictionary\7f2318381
++Node: compile-file\7f2318788
++Node: compile-file-pathname\7f2323551
++Node: load\7f2325601
++Node: with-compilation-unit\7f2331194
++Node: *features*\7f2333420
++Node: *compile-file-pathname*\7f2338857
++Node: *load-pathname*\7f2340169
++Node: *compile-print*\7f2341391
++Node: *load-print*\7f2341993
++Node: *modules*\7f2342631
++Node: provide\7f2343189
++Node: Environment\7f2346040
++Node: The External Environment\7f2346241
++Node: Top level loop\7f2346508
++Node: Debugging Utilities\7f2347363
++Node: Environment Inquiry\7f2347858
++Node: Time\7f2348547
++Node: Decoded Time\7f2349786
++Node: Universal Time\7f2351354
++Node: Internal Time\7f2352409
++Node: Seconds\7f2352989
++Node: Environment Dictionary\7f2353533
++Node: decode-universal-time\7f2354239
++Node: encode-universal-time\7f2356186
++Node: get-universal-time\7f2357356
++Node: sleep\7f2359506
++Node: apropos\7f2360593
++Node: describe\7f2362139
++Node: describe-object\7f2363987
++Node: trace\7f2366890
++Node: step\7f2369771
++Node: time\7f2371103
++Node: internal-time-units-per-second\7f2372983
++Node: get-internal-real-time\7f2373595
++Node: get-internal-run-time\7f2374450
++Node: disassemble\7f2375788
++Node: documentation\7f2377172
++Node: room\7f2383490
++Node: ed\7f2384588
++Node: inspect\7f2386051
++Node: dribble\7f2386947
++Node: - (Variable)\7f2388827
++Node: + (Variable)\7f2389470
++Node: * (Variable)\7f2390541
++Node: / (Variable)\7f2392088
++Node: lisp-implementation-type\7f2393234
++Node: short-site-name\7f2394466
++Node: machine-instance\7f2395429
++Node: machine-type\7f2396236
++Node: machine-version\7f2396898
++Node: software-type\7f2397610
++Node: user-homedir-pathname\7f2398628
++Node: Glossary (Glossary)\7f2399940
++Node: Glossary\7f2400395
++Node: Appendix\7f2561234
++Node: Removed Language Features\7f2561372
++Node: Requirements for removed and deprecated features\7f2561735
++Node: Removed Types\7f2562938
++Node: Removed Operators\7f2563171
++Node: Removed Argument Conventions\7f2563550
++Node: Removed Variables\7f2563868
++Node: Removed Reader Syntax\7f2564232
++Node: Packages No Longer Required\7f2564488
\1f
+ End Tag Table
+--- gcl27-2.7.1.orig/info/gcl.info-1
++++ gcl27-2.7.1/info/gcl.info-1
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -11,7 +11,10 @@ START-INFO-DIR-ENTRY
+ END-INFO-DIR-ENTRY
\1f
+-File: gcl.info,  Node: Top,  Next: Introduction (Introduction),  Prev: (dir),  Up: (dir)
++File: gcl.info,  Node: Top,  Next: Introduction (Introduction),  Up: (dir)
++
++Top
++***
+ * Menu:
+@@ -2159,8 +2162,8 @@ Implementation.  For further information
+ Non-Hierarchical Approach to Object-Oriented Programming.
+    These systems influenced the design of the Common Lisp Object System
+-(CLOS). CLOS was developed specifically for this standardization effort,
+-and was separately written up in Common Lisp Object System
++(CLOS).  CLOS was developed specifically for this standardization
++effort, and was separately written up in Common Lisp Object System
+ Specification.  However, minor details of its design have changed
+ slightly since that publication, and that paper should not be taken as
+ an authoritative reference to the semantics of the object system as
+@@ -2261,7 +2264,7 @@ File: gcl.info,  Node: Referenced Public
+ *
+      Common Lisp Object System Specification, D. Bobrow, L. DiMichiel,
+-     R.P. Gabriel, S. Keene, G. Kiczales, D. Moon, SIGPLAN Notices V23,
++     R.P.  Gabriel, S. Keene, G. Kiczales, D. Moon, SIGPLAN Notices V23,
+      September, 1988.
+ *
+@@ -2343,7 +2346,7 @@ File: gcl.info,  Node: Referenced Public
+ *
+      Smalltalk-80: The Language and its Implementation, A. Goldberg and
+-     D. Robson, Addison-Wesley, 1983.
++     D.  Robson, Addison-Wesley, 1983.
+ *
+      Standard LISP Report, J.B. Marti, A.C. Hearn, M.L. Griss, and C.
+@@ -2820,7 +2823,6 @@ of its many roles it is playing.
+                Figure 1-1: Notations for NIL
+-
+    Within this document only, nil is also sometimes notated as false to
+ emphasize its role as a boolean.
+@@ -4025,7 +4027,6 @@ The functions in Figure 1-2 are deprecat
+             Figure 1-2: Deprecated Functions
+-
\1f
+ File: gcl.info,  Node: Deprecated Argument Conventions,  Next: Deprecated Variables,  Prev: Deprecated Functions,  Up: Deprecated Language Features
+@@ -4049,7 +4050,6 @@ The ability to pass a numeric argument t
+   Figure 1-3: Functions with Deprecated :TEST-NOT Arguments
+-
+    The use of the situation names compile, load, and eval in eval-when
+ is deprecated.
+@@ -4123,7 +4123,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-4: Symbols in the COMMON-LISP package (part one of twelve).
+-
+   adjoin                      atom          boundp
+   adjust-array                base-char     break
+   adjustable-array-p          base-string   broadcast-stream
+@@ -4165,7 +4164,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-5: Symbols in the COMMON-LISP package (part two of twelve).
+-
+   cddadr             clear-input                  copy-tree
+   cddar              clear-output                 cos
+   cdddar             close                        cosh
+@@ -4207,7 +4205,6 @@ the 978 external symbols in the COMMON-L
+     Figure 1-6: Symbols in the COMMON-LISP package (part three of twelve).
+-
+   denominator                    eq
+   deposit-field                  eql
+   describe                       equal
+@@ -4249,7 +4246,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-7: Symbols in the COMMON-LISP package (part four of twelve).
+-
+   find-symbol                       get-internal-run-time
+   finish-output                     get-macro-character
+   first                             get-output-stream-string
+@@ -4291,7 +4287,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-8: Symbols in the COMMON-LISP package (part five of twelve).
+-
+   intern                                  lisp-implementation-type
+   internal-time-units-per-second          lisp-implementation-version
+   intersection                            list
+@@ -4333,7 +4328,6 @@ the 978 external symbols in the COMMON-L
+      Figure 1-9: Symbols in the COMMON-LISP package (part six of twelve).
+-
+   machine-version                mask-field
+   macro-function                 max
+   macroexpand                    member
+@@ -4375,7 +4369,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-10: Symbols in the COMMON-LISP package (part seven of twelve).
+-
+   nintersection         package-error
+   ninth                 package-error-package
+   no-applicable-method  package-name
+@@ -4417,7 +4410,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-11: Symbols in the COMMON-LISP package (part eight of twelve).
+-
+   pprint-tab                 read-char
+   pprint-tabular             read-char-no-hang
+   prin1                      read-delimited-list
+@@ -4459,7 +4451,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-12: Symbols in the COMMON-LISP package (part nine of twelve).
+-
+   room                          simple-bit-vector
+   rotatef                       simple-bit-vector-p
+   round                         simple-condition
+@@ -4501,7 +4492,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-13: Symbols in the COMMON-LISP package (part ten of twelve).
+-
+   standard-class             sublis
+   standard-generic-function  subseq
+   standard-method            subsetp
+@@ -4543,7 +4533,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-14: Symbols in the COMMON-LISP package (part eleven of twelve).
+-
+   truncate                             values-list
+   two-way-stream                       variable
+   two-way-stream-input-stream          vector
+@@ -4580,7 +4569,6 @@ the 978 external symbols in the COMMON-L
+   Figure 1-15: Symbols in the COMMON-LISP package (part twelve of twelve).
+-
\1f
+ File: gcl.info,  Node: Syntax,  Next: Evaluation and Compilation,  Prev: Introduction (Introduction),  Up: Top
+@@ -4638,7 +4626,6 @@ readtables.
+               Figure 2-1: Readtable defined names
+-
+ * Menu:
+ * The Current Readtable::
+@@ -4699,7 +4686,6 @@ influence the behavior of the Lisp reade
+   Figure 2-2: Variables that influence the Lisp reader.
+-
\1f
+ File: gcl.info,  Node: Standard Characters,  Next: Character Syntax Types,  Prev: Variables that affect the Lisp Reader,  Up: Character Syntax
+@@ -4744,7 +4730,6 @@ ninety-four graphic characters or their
+   Figure 2-3: Standard Character Subrepertoire (Part 1 of 3: Latin Characters)
+-
+   Graphic ID  Glyph  Description  Graphic ID  Glyph  Description
+   ND01        1      digit 1      ND06        6      digit 6
+   ND02        2      digit 2      ND07        7      digit 7
+@@ -4754,7 +4739,6 @@ ninety-four graphic characters or their
+   Figure 2-4: Standard Character Subrepertoire (Part 2 of 3: Numeric Characters)
+-
+   Graphic ID  Glyph  Description
+   SP02        !      exclamation mark
+   SC03        $     dollar sign
+@@ -4791,7 +4775,6 @@ ninety-four graphic characters or their
+   Figure 2-5: Standard Character Subrepertoire (Part 3 of 3: Special Characters)
+-
+    The graphic IDs are not used within Common Lisp, but are provided for
+ cross reference purposes with ISO 6937/2.  Note that the first letter of
+ the graphic ID categorizes the character as follows: L--Latin,
+@@ -4820,7 +4803,6 @@ one of the syntax types shown in Figure~
+   Figure 2-6: Possible Character Syntax Types
+-
+    The syntax type of a character in a readtable determines how that
+ character is interpreted by the Lisp reader while that readtable is the
+ current readtable.  At any given time, every character has exactly one
+@@ -4855,7 +4837,6 @@ syntax.
+             Figure 2-7: Character Syntax Types in Standard Syntax
+-
+    The characters marked with an asterisk (*) are initially
+ constituents, but they are not used in any standard Common Lisp
+ notations.  These characters are explicitly reserved to the programmer.
+@@ -5399,7 +5380,6 @@ implementation is permitted, but not req
+                      Figure 2-10: Examples of reserved tokens
+-
+    The tokens in Figure 2-11 are not potential numbers; they are always
+ treated as symbols:
+@@ -5408,7 +5388,6 @@ treated as symbols:
+   Figure 2-11: Examples of symbols
+-
+    The tokens in Figure 2-12 are potential numbers if the current input
+ base is 16, but they are always treated as symbols if the current input
+ base is 10.
+@@ -5417,7 +5396,6 @@ base is 10.
+   Figure 2-12: Examples of symbols or potential numbers
+-
\1f
+ File: gcl.info,  Node: Constructing Numbers from Tokens,  Next: The Consing Dot,  Prev: Numbers as Tokens,  Up: Interpretation of Tokens
+@@ -5489,7 +5467,6 @@ Figure 2-13.
+                   Figure 2-13: Examples of Ratios
+-
+    [Reviewer Note by Barmar: #o, #3r, #X, and #x mentioned above are not
+ in the syntax rules defined just above that.]
+@@ -5545,7 +5522,6 @@ external representation.
+                Figure 2-14: Examples of Floating-point numbers
+-
+    For information on how floats are printed, see *note Printing
+ Floats::.
+@@ -5624,7 +5600,6 @@ case of the current readtable is :upcase
+   Figure 2-15: Examples of the printed representation of symbols (Part 1 of 2)
+-
+   APL\\360               The symbol whose name is APL\360.
+   apl\\360               Also the symbol whose name is APL\360.
+   \(b^2\)\ -\ 4*a*c    The name is (B^2) - 4*A*C.
+@@ -5644,7 +5619,6 @@ case of the current readtable is :upcase
+   Figure 2-16: Examples of the printed representation of symbols (Part 2 of 2)
+-
+    In the process of parsing a symbol, it is implementation-dependent
+ which implementation-defined attributes are removed from the characters
+ forming a token that represents a symbol.
+@@ -5683,7 +5657,6 @@ The valid patterns for tokens are summar
+                  Figure 2-17: Valid patterns for tokens
+-
+    Note that nnnnn has number syntax, neither xxxxx nor ppppp has number
+ syntax, and aaaaa has any syntax.
+@@ -6031,7 +6004,6 @@ characters are removed in this process.
+           Figure 2-18: Examples of the use of double-quote
+-
+    Note that to place a single escape character or a double-quote into a
+ string, such a character must be preceded by a single escape character.
+ Note, too, that a multiple escape character need not be quoted by a
+@@ -6252,7 +6224,6 @@ are described later in this section and
+            Figure 2-19: Standard # Dispatching Macro Character Syntax
+-
+    The combinations marked by an asterisk (*) are explicitly reserved to
+ the user.  No conforming implementation defines them.
+@@ -6537,7 +6508,6 @@ point suffices.
+         Figure 2-20: Radix Indicator Example
+-
+    The consequences are undefined if the token immediately following the
+ #nR does not have the syntax of a rational in radix n.
+@@ -6568,7 +6538,6 @@ complex.
+                   Figure 2-21: Complex Number Example
+-
+    For further information, see *note Printing Complexes:: and *note
+ Syntax of a Complex::.
+@@ -7163,7 +7132,6 @@ assigning, binding, and defining variabl
+   Figure 3-1: Some Defined Names Applicable to Variables
+-
+    The following is a description of each kind of variable.
\1f
+@@ -7326,7 +7294,6 @@ operators.
+       Figure 3-2: Common Lisp Special Operators
+-
\1f
+ File: gcl.info,  Node: Macro Forms,  Next: Function Forms,  Prev: Special Forms,  Up: The Evaluation Model
+@@ -7368,7 +7335,6 @@ is also provided.
+     Figure 3-3: Defined names applicable to macros
+-
\1f
+ File: gcl.info,  Node: Function Forms,  Next: Lambda Forms,  Prev: Macro Forms,  Up: The Evaluation Model
+@@ -7426,7 +7392,6 @@ in the lexical environment can be establ
+       Figure 3-4: Some function-related defined names
+-
\1f
+ File: gcl.info,  Node: Lambda Forms,  Next: Self-Evaluating Objects,  Prev: Function Forms,  Up: The Evaluation Model
+@@ -7742,7 +7707,6 @@ where to put the values returned by thos
+   Figure 3-5: Some operators applicable to receiving multiple values
+-
+    The function values can produce multiple values_2.  (values) returns
+ zero values; (values form) returns the primary value returned by form;
+ (values form1 form2) returns two values, the primary value of form1 and
+@@ -7915,7 +7879,6 @@ of the original form.
+         Figure 3-6: Defined names applicable to compiler macros
+-
\1f
+ File: gcl.info,  Node: Purpose of Compiler Macros,  Next: Naming of Compiler Macros,  Prev: Compiler Macros,  Up: Compilation Semantics
+--- gcl27-2.7.1.orig/info/gcl.info-2
++++ gcl27-2.7.1/info/gcl.info-2
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -63,7 +63,6 @@ only when the defining macros appear at
+   Figure 3-8: Defining Macros That Affect the Compile-Time Environment
+-
\1f
+ File: gcl.info,  Node: Constraints on Macros and Compiler Macros,  Prev: Processing of Defining Macros,  Up: File Compilation
+@@ -528,7 +527,6 @@ Figure 3-9 shows a list of all declarati
+   Figure 3-9: Common Lisp Declaration Identifiers
+-
+    An implementation is free to support other (implementation-defined)
+ declaration identifiers as well.  A warning might be issued if a
+ declaration identifier is not among those defined above, is not defined
+@@ -710,7 +708,6 @@ parameters.
+                          Figure 3-10: What Kind of Lambda Lists to Use
+-
+    Figure 3-11 lists some defined names that are applicable to lambda
+ lists.
+@@ -718,7 +715,6 @@ lists.
+   Figure 3-11: Defined names applicable to lambda lists
+-
+ * Menu:
+ * Ordinary Lambda Lists::
+@@ -749,7 +745,6 @@ those which use ordinary lambda lists:
+   Figure 3-12: Standardized Operators that use Ordinary Lambda Lists
+-
+    An ordinary lambda list can contain the lambda list keywords shown in
+ Figure 3-13.
+@@ -758,7 +753,6 @@ Figure 3-13.
+   Figure 3-13: Lambda List Keywords used by Ordinary Lambda Lists
+-
+    Each element of a lambda list is either a parameter specifier or a
+ lambda list keyword.  Implementations are free to provide additional
+ lambda list keywords.  For a list of all lambda list keywords used by
+@@ -1099,7 +1093,6 @@ shown in Figure 3-14.
+   Figure 3-14: Lambda List Keywords used by Generic Function Lambda Lists
+-
+    A generic function lambda list differs from an ordinary lambda list
+ in the following ways:
+@@ -1129,7 +1122,6 @@ each for information about how.
+   Figure 3-15: Standardized Operators that use Specialized Lambda Lists
+-
+    A specialized lambda list can contain the lambda list keywords shown
+ in Figure 3-16.
+@@ -1138,7 +1130,6 @@ in Figure 3-16.
+   Figure 3-16: Lambda List Keywords used by Specialized Lambda Lists
+-
+    A specialized lambda list is syntactically the same as an ordinary
+ lambda list except that each required parameter may optionally be
+ associated with a class or object for which that parameter is
+@@ -1164,7 +1155,6 @@ operators in Figure 3-17.
+   Figure 3-17: Operators that use Macro Lambda Lists
+-
+    With the additional restriction that an environment parameter may
+ appear only once (at any of the positions indicated), a macro lambda
+ list has the following syntax:
+@@ -1200,7 +1190,6 @@ Figure 3-18.
+   Figure 3-18: Lambda List Keywords used by Macro Lambda Lists
+-
+    Optional parameters (introduced by &optional) and keyword parameters
+ (introduced by &key) can be supplied in a macro lambda list, just as in
+ an ordinary lambda list.  Both may contain default initialization forms
+@@ -1576,7 +1565,6 @@ Figure 3-19.
+   Figure 3-19: Lambda List Keywords used by Defsetf Lambda Lists
+-
+    A defsetf lambda list differs from an ordinary lambda list only in
+ that it does not permit the use of &aux, and that it permits use of
+ &environment, which introduces an environment parameter.
+@@ -1612,7 +1600,6 @@ keywords shown in Figure 3-20.
+   Figure 3-20: Lambda List Keywords used by Define-modify-macro Lambda Lists
+-
+    Define-modify-macro lambda lists are similar to ordinary lambda
+ lists, but do not support keyword arguments.  define-modify-macro has no
+ need match keyword arguments, and a rest parameter is sufficient.  Aux
+@@ -1637,7 +1624,6 @@ lambda list keywords shown in Figure 3-2
+   Figure 3-21: Lambda List Keywords used by Define-method-combination arguments Lambda Lists
+-
+    Define-method-combination arguments lambda lists are similar to
+ ordinary lambda lists, but also permit the use of &whole.
+@@ -3589,7 +3575,6 @@ with proclaim.
+   Figure 3-22: Global Declaration Specifiers
+-
+    An implementation is free to support other (implementation-defined)
+ declaration identifiers as well.
+@@ -3707,7 +3692,6 @@ the forms listed in Figure 3-23.
+        Figure 3-23: Standardized Forms In Which Declarations Can Occur
+-
+    A declare expression can only occur where specified by the syntax of
+ these forms.  The consequences of attempting to evaluate a declare
+ expression are undefined.  In situations where such expressions can
+@@ -3727,7 +3711,6 @@ with declare.
+   Figure 3-24: Local Declaration Specifiers
+-
+    An implementation is free to support other (implementation-defined)
+ declaration identifiers as well.
+@@ -3928,7 +3911,6 @@ f.
+         (flet ((g (x) (declare (dynamic-extent x)) ...))
+           (g (list 1 2 3))))
+-
+    In the previous example, some compilers might determine that
+ optimization was possible and others might not.
+@@ -4491,7 +4473,6 @@ standard optimize qualities are shown in
+              Figure 3-25: Optimize qualities
+-
+    There may be other, implementation-defined optimize qualities.
+    A value 0 means that the corresponding quality is totally
+@@ -5026,20 +5007,21 @@ Figure~4-1.  Figure~4-7 lists some class
+ relevant to the object system.  Figure~9-1 lists the defined condition
+ types.
+-  Section                                Data Type
+-  _________________________________________________________________________
+-  *note Classes::                        Object System types
+-  *note Slots::                          Object System types
+-  *note Objects::                        Object System types
+-  *note Generic Functions and Methods::  Object System types
+-  *note Condition System Concepts::      Condition System types
+-  *note Types and Classes::              Miscellaneous types
+-  *note Syntax::                         All types--read and print syntax
+-  *note The Lisp Printer::               All types--print syntax
+-  *note Compilation::                    All types--compilation issues
+-           Figure 4-1: Cross-References to Data Type Information
++Section                                Data Type
++--------------------------------------------------------------------------
++*note Classes::                        Object System types
++*note Slots::                          Object System types
++*note Objects::                        Object System types
++*note Generic Functions and Methods::  Object System types
++*note Condition System Concepts::      Condition System types
++*note Types and Classes::              Miscellaneous types
++*note Syntax::                         All types--read and print syntax
++*note The Lisp Printer::               All types--print syntax
++*note Compilation::                    All types--compilation issues
++
++         Figure 4-1: Cross-References to Data Type Information
\1f
+ File: gcl.info,  Node: Type Relationships,  Next: Type Specifiers,  Prev: Data Type Definition,  Up: Types
+@@ -5141,7 +5123,6 @@ define-condition, defstruct, or deftype.
+                  Figure 4-2: Standardized Atomic Type Specifiers
+-
+    \indent If a type specifier is a list, the car of the list is a
+ symbol, and the rest of the list is subsidiary type information.  Such a
+ type specifier is called a compound type specifier .  Except as
+@@ -5185,7 +5166,6 @@ abbreviated to (vector) and then to vect
+   Figure 4-3: Standardized Compound Type Specifier Names
+-
+    Figure 4-4 show the defined names that can be used as compound type
+ specifier names but that cannot be used as atomic type specifiers.
+@@ -5195,7 +5175,6 @@ specifier names but that cannot be used
+   Figure 4-4: Standardized Compound-Only Type Specifier Names
+-
+    New type specifiers can come into existence in two ways.
+ *
+@@ -5221,7 +5200,6 @@ declarations.
+   Figure 4-5: Defined names relating to types and declarations.
+-
+    Figure 4-6 shows all defined names that are type specifier names,
+ whether for atomic type specifiers or compound type specifiers; this
+ list is the union of the lists in Figure~4-2 and Figure~4-3.
+@@ -5264,7 +5242,6 @@ list is the union of the lists in Figure
+                   Figure 4-6: Standardized Type Specifier Names
+-
\1f
+ File: gcl.info,  Node: Classes,  Next: Types and Classes Dictionary,  Prev: Types,  Up: Types and Classes
+@@ -5283,7 +5260,6 @@ understanding the object system.
+                 Figure 4-7: Object System Classes
+-
+ * Menu:
+ * Introduction to Classes::
+@@ -5975,7 +5951,6 @@ type specifiers.
+        Figure 4-8: Classes that correspond to pre-defined type specifiers
+-
+    The class precedence list information specified in the entries for
+ each of these classes are those that are required by the object system.
+@@ -7050,7 +7025,6 @@ result.
+                Figure 4-9: Result possibilities for subtypep
+-
+    subtypep is permitted to return the values false and false only when
+ at least one argument involves one of these type specifiers: and, eql,
+ the list form of function, member, not, or, satisfies, or values.  (A
+@@ -7246,7 +7220,6 @@ element.  The typespec satisfies the fol
+ Examples::
+ ..........
+-
+       (type-of 'a) ⇒  SYMBOL
+       (type-of '(1 . 2))
+      ⇒  CONS
+@@ -7391,7 +7364,6 @@ Implementations are encouraged to recogn
+ expansion of deftype information at runtime.
+-
\1f
+ File: gcl.info,  Node: type-error,  Next: type-error-datum,  Prev: typep,  Up: Types and Classes Dictionary
+@@ -7553,7 +7525,6 @@ value or values being stored.
+                      Figure 5-1: Examples of setf
+-
+    Figure 5-2 shows operators relating to places and generalized
+ reference.
+@@ -7566,7 +7537,6 @@ reference.
+   Figure 5-2: Operators relating to places and generalized reference.
+-
+    Some of the operators above manipulate places and some manipulate
+ setf expanders.  A setf expansion can be derived from any place.
+@@ -7742,7 +7712,6 @@ Examples of the contents of the constitu
+   Figure 5-3: Sample Setf Expansion of a Variable
+-
+    For (car exp):
+   (g0002)                             ;list of temporary variables
+@@ -7753,7 +7722,6 @@ Examples of the contents of the constitu
+            Figure 5-4: Sample Setf Expansion of a CAR Form
+-
+    For (subseq seq s e):
+   (g0004 g0005 g0006)         ;list of temporary variables
+@@ -7765,7 +7733,6 @@ Examples of the contents of the constitu
+      Figure 5-5: Sample Setf Expansion of a SUBSEQ Form
+-
+    In some cases, if a subform of a place is itself a place, it is
+ necessary to expand the subform in order to compute some of the values
+ in the expansion of the outer place.  For (ldb bs (car exp)):
+@@ -7779,7 +7746,6 @@ in the expansion of the outer place.  Fo
+      Figure 5-6: Sample Setf Expansion of a LDB Form
+-
\1f
+ File: gcl.info,  Node: Kinds of Places,  Next: Treatment of Other Macros Based on SETF,  Prev: Overview of Places and Generalized Reference,  Up: Generalized Reference
+@@ -7856,7 +7822,6 @@ following categories:
+             Figure 5-7: Functions that setf can be used with--1
+-
+      In the case of subseq, the replacement value must be a sequence
+      whose elements might be contained by the sequence argument to
+      subseq, but does not have to be a sequence of the same type as the
+@@ -7886,7 +7851,6 @@ following categories:
+               Figure 5-8: Functions that setf can be used with--2
+-
+      During the setf expansion of these forms, it is necessary to call
+      get-setf-expansion
+@@ -8203,7 +8167,6 @@ form with the following general syntax:
+   Figure 5-9: Read-Modify-Write Macros
+-
\1f
+ File: gcl.info,  Node: Transfer of Control to an Exit Point,  Next: Data and Control Flow Dictionary,  Prev: Generalized Reference,  Up: Data and Control Flow
+--- gcl27-2.7.1.orig/info/gcl.info-3
++++ gcl27-2.7.1/info/gcl.info-3
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -2093,7 +2093,6 @@ The macros in Figure 5-10 have implicit
+   Figure 5-10: Macros that have implicit tagbodies.
+-
\1f
+ File: gcl.info,  Node: throw,  Next: unwind-protect,  Prev: tagbody,  Up: Data and Control Flow Dictionary
+@@ -2132,7 +2131,6 @@ Examples::
+          (loop (incf j 3) (incf i)
+                (if (= i 3) (throw 'result (values i j))))) ⇒  3, 9
+-
+       (catch nil
+         (unwind-protect (throw nil 1)
+           (throw nil 2))) ⇒  2
+@@ -2541,7 +2539,6 @@ them:
+   Figure 5-11: Operators that always prefer EQ over EQL
+-
\1f
+ File: gcl.info,  Node: eql,  Next: equal,  Prev: eq,  Up: Data and Control Flow Dictionary
+@@ -2703,7 +2700,6 @@ behavior of equal, with upper entries ta
+   Figure 5-12: Summary and priorities of behavior of equal
+-
+    Any two objects that are eql are also equal.
+    equal may fail to terminate if x or y is circular.
+@@ -2820,7 +2816,6 @@ behavior of equalp, with upper entries t
+   Figure 5-13: Summary and priorities of behavior of equalp
+-
+ Examples::
+ ..........
+@@ -4886,7 +4881,6 @@ Examples::
+       (flet ((frob (x) (cdr x)))  ;Invalid
+         (xpop (frob z)))
+-
+ See Also::
+ ..........
+@@ -6007,7 +6001,6 @@ File: gcl.info,  Node: Examples of for-a
+       |>  3
+      ⇒  NIL
+-
\1f
+ File: gcl.info,  Node: The for-as-equals-then subclause,  Next: Examples of for-as-equals-then subclause,  Prev: Examples of for-as-on-list subclause,  Up: Variable Initialization and Stepping Clauses
+@@ -6752,7 +6745,6 @@ File: gcl.info,  Node: Examples of uncon
+       |>  9
+      ⇒  NIL
+-
\1f
+ File: gcl.info,  Node: Conditional Execution Clauses,  Next: Miscellaneous Clauses,  Prev: Unconditional Execution Clauses,  Up: The LOOP Facility
+@@ -7731,7 +7723,6 @@ Examples::
+       (tokenize-sentence "this is a sentence")
+      ⇒  ("this" "is" "a" "sentence"), NIL
+-
+ Side Effects::
+ ..............
+@@ -8107,7 +8098,6 @@ nor evaluated.
+       (make-instance 'r 'b 4)      (b 4 a 1)                    4
+       (make-instance 'r 'a 1 'a 2) (a 1 a 2 b 2)                1
+-
\1f
+ File: gcl.info,  Node: Shared-Initialize,  Next: Initialize-Instance,  Prev: Rules for Initialization Arguments,  Up: Object Creation and Initialization
+@@ -8768,7 +8758,6 @@ method-defining operators are listed in
+   Figure 7-2: Standardized Method-Defining Operators
+-
+    Note that of the standardized method-defining operators only
+ defgeneric can specify generic function options.  defgeneric and any
+ implementation-defined operators that can specify generic function
+--- gcl27-2.7.1.orig/info/gcl.info-4
++++ gcl27-2.7.1/info/gcl.info-4
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -431,7 +431,6 @@ Figure 7-3.
+   Figure 7-3: Built-in Method Combination Types
+-
+    The semantics of the standard built-in method combination type is
+ described in *note Standard Method Combination::.  The other built-in
+ method combination types are called simple built-in method combination
+@@ -1190,7 +1189,6 @@ Examples::
+                    theta (atan new-y x))
+              new-y)))
+-
+ Exceptional Situations::
+ ........................
+@@ -1307,7 +1305,6 @@ Examples::
+      ;;; on the value of the x and y slots, which were maintained by
+      ;;; the old instance.
+-
+ See Also::
+ ..........
+@@ -2397,7 +2394,6 @@ A with-accessors expression of the form:
+      (with-accessors (slot-entry_1 ...slot-entry_n) instance-form form_1 ...form_k)
+-
+ expands into the equivalent of
+@@ -2405,7 +2401,6 @@ expands into the equivalent of
+       (symbol-macrolet (Q_1... Q_n) form_1 ...form_k))
+-
+ where Q_i is
+      (variable-name_i ()
+@@ -2509,7 +2504,6 @@ A with-slots expression of the form:
+      (with-slots (slot-entry_1 ...slot-entry_n) instance-form form_1 ...form_k)
+-
+ expands into the equivalent of
+@@ -2517,7 +2511,6 @@ expands into the equivalent of
+       (symbol-macrolet (Q_1... Q_n) form_1 ...form_k))
+-
+ where Q_i is
+      (slot-entry_i ()
+@@ -4022,7 +4015,6 @@ the declarative method combination facil
+                               methods))
+            (unlock (object-lock ,object))))
+-
+ Side Effects::
+ ..............
+@@ -5536,7 +5528,6 @@ types can be defined by using define-con
+                     Figure 9-1: Standardized Condition Types
+-
+    All condition types are subtypes of type condition.  That is,
+       (typep c 'condition) ⇒  true
+@@ -5560,7 +5551,6 @@ conditions.
+   Figure 9-2: Operators that define and create conditions.
+-
+    Figure 9-3 shows operators that read the value of condition slots.
+   arithmetic-error-operands   simple-condition-format-arguments
+@@ -5572,7 +5562,6 @@ conditions.
+          Figure 9-3: Operators that read condition slots.
+-
+ * Menu:
+ * Serious Conditions::
+@@ -5851,7 +5840,6 @@ will be considered for possible invocati
+   Figure 9-4: Operators relating to handling conditions.
+-
+ * Menu:
+ * Signaling::
+@@ -5894,7 +5882,6 @@ conditions.
+   Figure 9-5: Defined names relating to signaling conditions.
+-
\1f
+ File: gcl.info,  Node: Resignaling a Condition,  Next: Restarts,  Prev: Signaling,  Up: Signaling and Handling Conditions
+@@ -6015,7 +6002,6 @@ notational convenience.
+             Figure 9-6: Defined names relating to restarts.
+-
\1f
+ File: gcl.info,  Node: Restart Tests,  Next: Associating a Restart with a Condition,  Prev: Interfaces to Restarts,  Up: Signaling and Handling Conditions
+@@ -6063,7 +6049,6 @@ form evaluation, and type are handled by
+   Figure 9-7: Operators relating to assertions.
+-
\1f
+ File: gcl.info,  Node: Notes about the Condition System`s Background,  Prev: Assertions,  Up: Condition System Concepts
+@@ -6903,7 +6888,6 @@ Examples::
+       |>  Type a form to be evaluated and used instead: |>>5<<|
+      ⇒  (defun add5 (x) (+ x 5))
+-
+    Control is transferred to a handler.
+ Side Effects::
+@@ -7423,7 +7407,6 @@ Examples::
+       |>  Return from BREAK.
+      ⇒  NIL
+-
+ Side Effects::
+ ..............
+--- gcl27-2.7.1.orig/info/gcl.info-5
++++ gcl27-2.7.1/info/gcl.info-5
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -162,7 +162,6 @@ Examples::
+       ;; also returns information about any system-supplied restarts, such as
+       ;; the "Return to Lisp Toplevel" restart offered above.
+-
+ Affected By::
+ .............
+@@ -1294,7 +1293,6 @@ Examples::
+       (setq x 1 y 2) ⇒  2
+       (add-symbols-with-default 3 'x 'y 'z) ⇒  6
+-
+ Side Effects::
+ ..............
+@@ -1358,7 +1356,6 @@ lists of symbols.
+   Figure 10-1: Property list defined names
+-
+    Figure 10-2 lists some defined names that are applicable to the
+ creation of and inquiry about symbols.
+@@ -1368,7 +1365,6 @@ creation of and inquiry about symbols.
+   Figure 10-2: Symbol creation and inquiry defined names
+-
\1f
+ File: gcl.info,  Node: Symbols Dictionary,  Prev: Symbol Concepts,  Up: Symbols
+@@ -2737,7 +2733,6 @@ symbol is supplied, its name will be use
+          Figure 11-1: Some Defined Names related to Packages
+-
+ * Menu:
+ * Package Names and Nicknames::
+@@ -2960,7 +2955,6 @@ those standardized packages is given in
+   Figure 11-2: Standardized Package Names
+-
+ * Menu:
+ * The COMMON-LISP Package::
+@@ -3756,7 +3750,6 @@ Examples::
+       (export 'test-2::test (find-package 'test-2)) ⇒  T
+       (use-package 'test-2 (find-package 'test-1))    ;should not error
+-
+ Side Effects::
+ ..............
+@@ -5303,7 +5296,6 @@ into categories that emphasize some of t
+   Figure 12-1: Operators relating to Arithmetic.
+-
+    Figure 12-2 shows defined names relating to exponential, logarithmic,
+ and trigonometric operations.
+@@ -5318,7 +5310,6 @@ and trigonometric operations.
+   Figure 12-2: Defined names relating to Exponentials, Logarithms, and Trigonometry.
+-
+    Figure 12-3 shows operators relating to numeric comparison and
+ predication.
+@@ -5330,7 +5321,6 @@ predication.
+   Figure 12-3: Operators for numeric comparison and predication.
+-
+    Figure 12-4 shows defined names relating to numeric type manipulation
+ and coercion.
+@@ -5346,7 +5336,6 @@ and coercion.
+   Figure 12-4: Defined names relating to numeric type manipulation and coercion.
+-
+ * Menu:
+ * Associativity and Commutativity in Numeric Operations::
+@@ -5456,7 +5445,6 @@ numbers.
+   Figure 12-5: Defined names relating to logical operations on numbers.
+-
\1f
+ File: gcl.info,  Node: Byte Operations on Integers,  Prev: Logical Operations on Integers,  Up: Numeric Operations
+@@ -5478,7 +5466,6 @@ numbers.
+   Figure 12-6: Defined names relating to byte manipulation.
+-
\1f
+ File: gcl.info,  Node: Implementation-Dependent Numeric Constants,  Next: Rational Computations,  Prev: Numeric Operations,  Up: Number Concepts
+@@ -5504,7 +5491,6 @@ details about numbers.
+   Figure 12-7: Defined names relating to implementation-dependent details about numbers.
+-
\1f
+ File: gcl.info,  Node: Rational Computations,  Next: Floating-point Computations,  Prev: Implementation-Dependent Numeric Constants,  Up: Number Concepts
+@@ -5606,7 +5592,6 @@ single-float).
+   Figure 12-8: Functions Affected by Rule of Float Substitutability
+-
\1f
+ File: gcl.info,  Node: Floating-point Computations,  Next: Complex Computations,  Prev: Rational Computations,  Up: Number Concepts
+@@ -5803,7 +5788,6 @@ applicable portion of the complex domain
+          Figure 12-9: Trigonometric Identities for Complex Domain
+-
+    The quadrant numbers referred to in the discussions of branch cuts
+ are as illustrated in Figure 12-10.
+@@ -5824,7 +5808,6 @@ are as illustrated in Figure 12-10.
+                                |
+                                |
+-
+     Figure 12-9: Quadrant Numbering for Branch Cuts
\1f
+@@ -5882,7 +5865,6 @@ states.
+   Figure 12-10: Random-state defined names
+-
\1f
+ File: gcl.info,  Node: Numbers Dictionary,  Prev: Number Concepts,  Up: Numbers (Numbers)
+@@ -6261,7 +6243,6 @@ minus zero.
+   Figure 12-11: Recommended Minimum Floating-Point Precision and Exponent Size
+-
+    There can be fewer than four internal representations for floats.  If
+ there are fewer distinct representations, the following rules apply:
+@@ -6749,7 +6730,6 @@ The uses of these functions are illustra
+          Figure 12-12: Uses of /=, =, <, >, <=, and >=
+-
+ Exceptional Situations::
+ ........................
+@@ -7153,7 +7133,6 @@ specified as x as in Figure 12-13.
+   Figure 12-13: Mathematical definition of arc sine, arc cosine, and arc tangent
+-
+    These formulae are mathematically correct, assuming completely
+ accurate computation.  They are not necessarily the simplest ones for
+ real-valued computations.
+@@ -7264,7 +7243,6 @@ implementations that support minus zero.
+                Figure 12-14: Quadrant information for arc tangent
+-
+ Examples::
+ ..........
+@@ -7376,7 +7354,6 @@ for an argument x as given in Figure 12-
+     Figure 12-15: Mathematical definitions for hyperbolic functions
+-
+    The following definition for the inverse hyperbolic cosine determines
+ the range and branch cuts:
+@@ -8119,7 +8096,7 @@ even if an exact integer result is possi
+    The branch cut for the logarithm function of one argument (natural
+ logarithm) lies along the negative real axis, continuous with quadrant
+-II. The domain excludes the origin.
++II.  The domain excludes the origin.
+    The mathematical definition of a complex logarithm is as follows,
+ whether or not minus zero is supported by the implementation:
+@@ -8780,7 +8757,6 @@ Examples::
+       (complexp 1.2d2) ⇒  false
+       (complexp #c(5/3 7.2)) ⇒  true
+-
+ See Also::
+ ..........
+@@ -9320,7 +9296,6 @@ Examples::
+       (integerp 6/5) ⇒  false
+       (integerp nil) ⇒  false
+-
+ Notes::
+ .......
+@@ -9442,7 +9417,6 @@ op.
+          Figure 12-16: Bit-Wise Logical Operations
+-
+ Examples::
+ ..........
+@@ -9637,7 +9611,6 @@ no arguments are supplied.
+        Figure 12-17: Bit-wise Logical Operations on Integers
+-
+    Negative integers are treated as if they were in two's-complement
+ notation.
+--- gcl27-2.7.1.orig/info/gcl.info-6
++++ gcl27-2.7.1/info/gcl.info-6
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -666,7 +666,6 @@ and character predicates.
+        Figure 13-1: Character defined names - 1
+-
+    Figure 13-2 lists some character construction and conversion defined
+ names.
+@@ -676,7 +675,6 @@ names.
+   Figure 13-2: Character defined names - 2
+-
\1f
+ File: gcl.info,  Node: Introduction to Scripts and Repertoires,  Next: Character Attributes,  Prev: Introduction to Characters,  Up: Character Concepts
+@@ -2235,7 +2233,6 @@ and the cdr.
+   Figure 14-1: Some defined names relating to conses.
+-
+    Depending on context, a group of connected conses can be viewed in a
+ variety of different ways.  A variety of operations is provided to
+ support each of these various views.
+@@ -2270,7 +2267,6 @@ some relationship among that data.
+   Figure 14-2: Some defined names relating to trees.
+-
+ * Menu:
+ * General Restrictions on Parameters that must be Trees::
+@@ -2320,7 +2316,6 @@ some cons in the chain is the cdr of a l
+   Figure 14-3: Some defined names relating to lists.
+-
+ * Menu:
+ * Lists as Association Lists::
+@@ -2342,7 +2337,6 @@ the value associated with that key.
+   Figure 14-4: Some defined names related to association lists.
+-
\1f
+ File: gcl.info,  Node: Lists as Sets,  Next: General Restrictions on Parameters that must be Lists,  Prev: Lists as Association Lists,  Up: Conses as Lists
+@@ -2358,7 +2352,6 @@ unordered and by assuming there is no du
+        Figure 14-5: Some defined names related to sets.
+-
\1f
+ File: gcl.info,  Node: General Restrictions on Parameters that must be Lists,  Prev: Lists as Sets,  Up: Conses as Lists
+@@ -2886,7 +2879,6 @@ relationships precisely.
+          Figure 14-6: CAR and CDR variants
+-
+    setf can also be used with any of these functions to change an
+ existing component of x, but setf will not make new components.  So, for
+ example, the car of a cons can be assigned with setf of car, but the car
+@@ -3489,7 +3481,6 @@ list-length could be implemented as foll
+           ;;  That fact justifies this implementation.)
+           (when (and (eq fast slow) (> n 0)) (return nil))))
+-
\1f
+ File: gcl.info,  Node: listp,  Next: make-list,  Prev: list-length,  Up: Conses Dictionary
+@@ -4104,7 +4095,6 @@ Examples::
+       |>  T
+      ⇒  T
+-
+ Side Effects::
+ ..............
+@@ -6092,7 +6082,6 @@ creation, access, and information operat
+            Figure 15-1: General Purpose Array-Related Defined Names
+-
+ * Menu:
+ * Array Upgrading::
+@@ -6157,7 +6146,6 @@ Strings::.
+       Figure 15-2: Operators that Manipulate Strings
+-
+    Vectors whose elements are restricted to type bit are called bit
+ vectors .  Bit vectors are of type bit-vector.  Figure 15-3 lists some
+ defined names for operations on bit arrays.
+@@ -6170,7 +6158,6 @@ defined names for operations on bit arra
+   Figure 15-3: Operators that Manipulate Bit Arrays
+-
\1f
+ File: gcl.info,  Node: Arrays Dictionary,  Prev: Array Concepts,  Up: Arrays
+@@ -8267,7 +8254,6 @@ bit-orc1
+ bit-orc2                                                   or bit-array1 with complement of bit-array2
+   Figure 15-3: Bit-wise Logical Operations on Bit Arrays
+-
+ Examples::
+ ..........
+@@ -9216,7 +9202,6 @@ constructed will be simple strings.
+         Figure 17-1: Standardized Sequence Functions
+-
+ * Menu:
+ * General Restrictions on Parameters that must be Sequences::
+@@ -9266,7 +9251,6 @@ designated with either a :test or :test-
+   Figure 17-2: Operators that have Two-Argument Tests to be Satisfied
+-
+    The object O might not be compared directly to E_i.  If a :key
+ argument is provided, it is a designator for a function of one argument
+ to be called with each E_i as an argument, and yielding an object Z_i to
+@@ -9356,7 +9340,6 @@ basis of a one argument predicate.
+   Figure 17-3: Operators that have One-Argument Tests to be Satisfied
+-
+    The element E_i might not be considered directly.  If a :key argument
+ is provided, it is a designator for a function of one argument to be
+ called with each E_i as an argument, and yielding an object Z_i to be
+--- gcl27-2.7.1.orig/info/gcl.info-7
++++ gcl27-2.7.1/info/gcl.info-7
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -1025,7 +1025,6 @@ The following rules apply to hash tables
+      Figure 18-1: Hash-table defined names
+-
\1f
+ File: gcl.info,  Node: Modifying Hash Table Keys,  Prev: Hash-Table Operations,  Up: Hash Table Concepts
+@@ -2083,7 +2082,6 @@ pathnames.
+                      Figure 19-1: Pathname Operations
+-
\1f
+ File: gcl.info,  Node: Parsing Namestrings Into Pathnames,  Prev: Pathnames as Filenames,  Up: Overview of Filenames
+@@ -2266,7 +2264,6 @@ lists the functions relating to pathname
+   Figure 19-2: Pathname functions using a :CASE argument
+-
\1f
+ File: gcl.info,  Node: Local Case in Pathname Components,  Next: Common Case in Pathname Components,  Prev: Case in Pathname Components,  Up: Interpreting Pathname Component Values
+@@ -2512,7 +2509,6 @@ most implementations.
+           Figure 19-3: Special Markers In Directory Component
+-
+    The following notes apply to the previous figure:
+ Invalid Combinations
+@@ -4403,7 +4399,6 @@ directories.
+     Figure 20-1: File and Directory Operations
+-
+ * Menu:
+ * Coercion of Streams to Pathnames::
+@@ -4448,7 +4443,6 @@ differently.
+   Figure 20-2: File Functions that Treat Open and Closed Streams Differently
+-
+    Since treatment of open streams by the file system may vary
+ considerably between implementations, however, a closed stream might be
+ the most reliable kind of argument for some of these functions--in
+@@ -4461,7 +4455,6 @@ that is intended to be portable should u
+   Figure 20-3: File Functions where Closed Streams Might Work Best
+-
\1f
+ File: gcl.info,  Node: Truenames,  Prev: File Operations on Open and Closed Streams,  Up: File System Concepts
+@@ -5142,7 +5135,6 @@ with any kind of stream.
+   Figure 21-1: Some General-Purpose Stream Operations
+-
+    Other operations are only meaningful on certain stream types.  For
+ example, read-char is only defined for character streams and read-byte
+ is only defined for binary streams.
+@@ -5182,7 +5174,6 @@ stream (source of data), an output strea
+         Figure 21-2: Operators relating to Input Streams.
+-
+    Figure 21-3 shows operators relating to output streams.
+   clear-output   prin1            write
+@@ -5194,7 +5185,6 @@ stream (source of data), an output strea
+   Figure 21-3: Operators relating to Output Streams.
+-
+    A stream that is both an input stream and an output stream is called
+ a bidirectional stream .  See the functions input-stream-p and
+ output-stream-p.
+@@ -5207,7 +5197,6 @@ operators that relate specificaly to bid
+   Figure 21-4: Operators relating to Bidirectional Streams.
+-
\1f
+ File: gcl.info,  Node: Open and Closed Streams,  Next: Interactive Streams,  Prev: Input,  Up: Introduction to Streams
+@@ -5321,7 +5310,6 @@ subclasses.
+   Figure 21-5: Defined Names related to Specialized Streams
+-
\1f
+ File: gcl.info,  Node: Stream Variables,  Next: Stream Arguments to Standardized Functions,  Prev: Introduction to Streams,  Up: Stream Concepts
+@@ -5349,7 +5337,6 @@ stream.
+   Figure 21-6: Standardized Stream Variables
+-
+    Note that, by convention, standardized stream variables have names
+ ending in "-input*" if they must be input streams, ending in "-output*"
+ if they must be output streams, or ending in "-io*" if they must be
+@@ -5383,7 +5370,6 @@ either open or closed streams.
+         Figure 21-7: Operators that accept either Open or Closed Streams
+-
+    The operators in Figure 21-8 accept stream arguments that must be
+ open streams.
+@@ -5408,7 +5394,6 @@ open streams.
+              Figure 21-8: Operators that accept Open Streams only
+-
\1f
+ File: gcl.info,  Node: Restrictions on Composite Streams,  Prev: Stream Arguments to Standardized Functions,  Up: Stream Concepts
+@@ -8799,7 +8784,6 @@ control variables.
+        Figure 22-1: Standardized Printer Control Variables
+-
+    In addition to the printer control variables, the following
+ additional defined names relate to or affect the behavior of the Lisp
+ printer:
+@@ -8809,7 +8793,6 @@ printer:
+    Figure 22-2: Additional Influences on the Lisp printer.
+-
\1f
+ File: gcl.info,  Node: Printer Escaping,  Prev: Multiple Possible Textual Representations,  Up: Overview of The Lisp Printer
+--- gcl27-2.7.1.orig/info/gcl.info-8
++++ gcl27-2.7.1/info/gcl.info-8
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -501,7 +501,6 @@ pretty printing.
+              Figure 22-3: Defined names related to pretty printing.
+-
+    Figure 22-4 identifies a set of format directives which serve as an
+ alternate interface to the same pretty printing operations in a more
+ textually compact form.
+@@ -511,7 +510,6 @@ textually compact form.
+   Figure 22-4: Format directives related to Pretty Printing
+-
\1f
+ File: gcl.info,  Node: Compiling Format Strings,  Next: Pretty Print Dispatch Tables,  Prev: Format Directive Interface,  Up: Pretty Printer Concepts
+@@ -934,7 +932,6 @@ call.
+              Figure 22-5: Examples of format control strings
+-
+    format sends the output to destination.  If destination is nil,
+ format creates and returns a string containing the output from
+ control-string.  If destination is non-nil, it must be a string with a
+@@ -3503,7 +3500,6 @@ the Lisp printer.
+   Figure 22-6: Argument correspondences for the WRITE function.
+-
+    prin1, princ, print, and pprint implicitly bind certain print
+ parameters to particular values.  The remaining parameter values are
+ taken from *print-array*, *print-base*, *print-case*, *print-circle*,
+@@ -5105,7 +5101,7 @@ to prevent it from being a constituent.
+ a}.  This could be corrected by putting a space before the }, but it is
+ better to call set-macro-character.
+-   Giving } the same  definition as the standard definition of the
++   Giving } the same definition as the standard definition of the
+ character ) has the twin benefit of making it terminate tokens for use
+ with read-delimited-list and also making it invalid for use in any other
+ context.  Attempting to read a stray } will signal an error.
+@@ -5604,7 +5600,6 @@ mentioned here, too.]
+          Figure 23-1: Values of standard control variables
+-
+ Examples::
+ ..........
+@@ -5812,7 +5807,7 @@ Dispatching macro characters (including
+ continue to delimit and construct lists; the #( notation continues to
+ delimit vectors; and comments, strings, and the single-quote and
+ backquote notations continue to be interpreted properly.  Such
+-situations as '),     #<, #), and #<Space> continue to signal errors.
++situations as '), #<, #), and #<Space> continue to signal errors.
+ Examples::
+ ..........
+@@ -6039,7 +6034,6 @@ expressions, and how they would be read_
+               Figure 24-1: Features examples
+-
\1f
+ File: gcl.info,  Node: System Construction Dictionary,  Prev: System Construction Concepts,  Up: System Construction
+@@ -6944,7 +6938,6 @@ variables that are maintained by the Lis
+   Figure 25-1: Variables maintained by the Read-Eval-Print Loop
+-
\1f
+ File: gcl.info,  Node: Debugging Utilities,  Next: Environment Inquiry,  Prev: Top level loop,  Up: The External Environment
+@@ -6961,7 +6954,6 @@ Figure 25-2 shows defined names relating
+   Figure 25-2: Defined names relating to debugging
+-
\1f
+ File: gcl.info,  Node: Environment Inquiry,  Next: Time,  Prev: Debugging Utilities,  Up: The External Environment
+@@ -6981,7 +6973,6 @@ executed.
+     Figure 25-3: Defined names relating to environment inquiry.
+-
\1f
+ File: gcl.info,  Node: Time,  Prev: Environment Inquiry,  Up: The External Environment
+@@ -7009,7 +7000,6 @@ represented as a non-negative real numbe
+         Figure 25-4: Defined names involving Time.
+-
+ * Menu:
+ * Decoded Time::
+@@ -7069,7 +7059,6 @@ Time zone
+   Figure 25-5: Defined names involving time in Decoded Time.
+-
\1f
+ File: gcl.info,  Node: Universal Time,  Next: Internal Time,  Prev: Decoded Time,  Up: Time
+@@ -7094,7 +7083,6 @@ Lisp.
+   Figure 25-6: Defined names involving time in Universal Time.
+-
\1f
+ File: gcl.info,  Node: Internal Time,  Next: Seconds,  Prev: Universal Time,  Up: Time
+@@ -7113,7 +7101,6 @@ to an arbitrary time base.
+   Figure 25-7: Defined names involving time in Internal Time.
+-
\1f
+ File: gcl.info,  Node: Seconds,  Prev: Internal Time,  Up: Time
+@@ -7131,7 +7118,6 @@ fractional seconds.
+   Figure 25-8: Defined names involving time in Seconds.
+-
\1f
+ File: gcl.info,  Node: Environment Dictionary,  Prev: The External Environment,  Up: Environment
+@@ -8843,3 +8829,13 @@ Affected By::
+ The host computer's file system, and the implementation.
++\1f
++File: gcl.info,  Node: Glossary (Glossary),  Next: Appendix,  Prev: Environment,  Up: Top
++
++26 Glossary
++***********
++
++* Menu:
++
++* Glossary::
++
+--- gcl27-2.7.1.orig/info/gcl.info-9
++++ gcl27-2.7.1/info/gcl.info-9
+@@ -1,4 +1,4 @@
+-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi.
++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi.
+ This is a Texinfo GNU Common Lisp Manual based on the draft ANSI
+ standard for Common Lisp.
+@@ -11,16 +11,6 @@ START-INFO-DIR-ENTRY
+ END-INFO-DIR-ENTRY
\1f
+-File: gcl.info,  Node: Glossary (Glossary),  Next: Appendix,  Prev: Environment,  Up: Top
+-
+-26 Glossary
+-***********
+-
+-* Menu:
+-
+-* Glossary::
+-
+-\1f
+ File: gcl.info,  Node: Glossary,  Prev: Glossary (Glossary),  Up: Glossary (Glossary)
+ 26.1 Glossary
+@@ -1423,7 +1413,6 @@ exponent marker
+                 Figure 26-1: Exponent Markers
+-
+ export
+      v.t.  (a symbol in a package) to add the symbol to the list of
+      external symbols of the package.
+@@ -1886,7 +1875,6 @@ I/O customization variable
+        Figure 26-2: Standardized I/O Customization Variables
+-
+ identical
+      adj.  the same under eq.
+@@ -2080,7 +2068,6 @@ iteration form
+          Figure 26-3: Standardized Iteration Forms
+-
+ iteration variable
+      n.  a variable V, the binding for which was created by an explicit
+      use of V in an iteration form.
+@@ -3108,7 +3095,6 @@ restart function
+        Figure 26-4: Standardized Restart Functions
+-
+ return
+      v.t.  (of values) 1.  (from a block) to transfer control and values
+      from the block; that is, to cause the block to yield the values
+@@ -3736,7 +3722,7 @@ time zone
+      (inclusive) that represents a time zone as a number of hours offset
+      from Greenwich Mean Time.  Time zone values increase with motion to
+      the west, so Massachusetts, U.S.A. is in time zone 5, California,
+-     U.S.A. is time zone 8, and Moscow, Russia is time zone -3.  (When
++     U.S.A.  is time zone 8, and Moscow, Russia is time zone -3.  (When
+      "daylight savings time" is separately represented as an argument or
+      return value, the time zone that accompanies it does not depend on
+      whether daylight savings time is in effect.)
+--- gcl27-2.7.1.orig/info/system.texi
++++ gcl27-2.7.1/info/system.texi
+@@ -120,7 +120,7 @@ will bear a name based on the name of th
+ by name by C code.
+ @end vtable
+-@node Operating System Definitions,  , Command Line, Operating System
++@node Operating System Definitions, Environment Variables , Command Line, Operating System
+ @section Operating System Definitions
+ @defun GET-DECODED-TIME ()
diff --git a/debian/patches/Version_2_7_2pre21 b/debian/patches/Version_2_7_2pre21
new file mode 100644 (file)
index 0000000..f36e8e4
--- /dev/null
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 14 2026 11:50:06 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre20"
++"Version_2_7_2pre21"
+--- gcl27-2.7.1.orig/h/s390-linux.h
++++ gcl27-2.7.1/h/s390-linux.h
+@@ -6,9 +6,9 @@
+ #define C_GC_OFFSET 4
+ #define RELOC_H "elf64_s390_reloc.h"
+ #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h"
+-#define OUTPUT_MACH #define bfd_mach_s390_64
++#define OUTPUT_MACH bfd_mach_s390_64
+ #else
+ #define RELOC_H "elf32_s390_reloc.h"
+-#define OUTPUT_MACH #define bfd_mach_s390_32
++#define OUTPUT_MACH bfd_mach_s390_32
+ #endif
diff --git a/debian/patches/Version_2_7_2pre22 b/debian/patches/Version_2_7_2pre22
new file mode 100644 (file)
index 0000000..abc7cf4
--- /dev/null
@@ -0,0 +1,150 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 16 2026 13:00:24 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1135720
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -271,7 +271,10 @@ unixport/raw_%: unixport/lib%.a $(FF) $(
+               ( echo Relinking raw image for mac arm && \
+                 $(CC) \
+                      $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
+-                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS))
++                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \
++                ("$$(printf '%s\n1167\n' $$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)"  != "1167" || \
++                      ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
++                        codesign -s - --force $@ )))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4583,7 +4583,10 @@ unixport/raw_%: unixport/lib%.a $(FF) $(
+               ( echo Relinking raw image for mac arm && \
+                 $(CC) \
+                      $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
+-                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS))
++                     $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \
++                ("$$(printf '%s\n1167\n' $$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)"  != "1167" || \
++                      ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
++                        codesign -s - --force $@ )))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -88,9 +88,7 @@
+                   (or 
+                    (c1constant-value val nil)
+                    (when (functionp val)
+-                     (multiple-value-bind (s c n) (fle val)
+-                       (declare (ignore c))
+-                       (c1function (list (or n s)))))
++                     (c1function (list (fle val))))
+                    `(location ,(make-info :type (object-type val)) (VV ,(add-constant form))))))
+                                       ;                 ((c1var form))))
+                  ((c1expr-avct (c1var form))))) ;FIXME pcl
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -7342,7 +7342,7 @@ if test ${enable_saved_pre_image_span+y}
+ then :
+   enableval=$enable_saved_pre_image_span; SAVED_PRE_IMAGE_SPAN=$enableval
+ else case e in #(
+-  e) SAVED_PRE_IMAGE_SPAN=0x100000000 ;;
++  e) SAVED_PRE_IMAGE_SPAN=0xFFF00000 ;;
+ esac
+ fi
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -360,7 +360,7 @@ case $use in
+       #Support libboot option
+       AC_ARG_ENABLE([saved_pre_image_span],[  --enable-saved_pre_image_span=0x.... set address span for saved pre images],
+-          [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0x100000000])
++          [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0xFFF00000])
+       AC_DEFINE_UNQUOTED(SAVED_PRE_IMAGE_SPAN,$SAVED_PRE_IMAGE_SPAN,[address span for saved pre images])
+       AC_ARG_ENABLE([saved_image_span],[  --enable-saved_image_span=0x.... set address span for saved images],
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre21"
++"Version_2_7_2pre22"
+--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp
++++ gcl27-2.7.1/lsp/gcl_fpe.lsp
+@@ -2,7 +2,7 @@
+ (in-package :fpe)
+ (import 'si::(disassemble-instruction feenableexcept fedisableexcept fld *fixnum *float *double
+-                                    fetestexcept feclearexcept
++                                    fetestexcept feclearexcept address
+                                     *fixnum *ushort *uint fun-name
+                                     si-class-direct-subclasses si-class-name si-find-class
+                                     +fe-list+ +mc-context-offsets+ floating-point-error 
+@@ -132,11 +132,11 @@
+ #.`(let ((fpe-enabled 0)(fpe-set 0))
+      #+no-sigfpe
+-     (defun flush-floating-point-exceptions nil
++     (defun flush-floating-point-exceptions (name args &optional (fun (symbol-function name)))
+        (let ((x (fetestexcept fpe-set)))
+        (unless (zerop x)
+          (feclearexcept x)
+-         (floating-point-error x 0 0))))
++         (floating-point-error x (list* fun "unknown" name args) 0))))
+      (defun break-on-floating-point-exceptions 
+        (&key suspend no-flush
+           ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+)
+@@ -168,17 +168,23 @@
+         :initial-value nil)
+       'arithmetic-error))
+        
+-(defun floating-point-error (code addr context)
++(defun floating-point-error (code addr context &aux (l (listp addr)))
+   (break-on-floating-point-exceptions :suspend t :no-flush t)
+   (restart-case
+    (unwind-protect
+-       (let* ((fun (function-by-address addr))(m (read-instruction addr context)))
+-       ((lambda (&rest r) (apply 'error (if (find-package :conditions) r (list (format nil "~s" r)))))
++      (let* ((fun (if l (pop addr) (function-by-address addr)))
++             (m (if l addr (read-instruction addr context)))
++             (addr (if l (address fun) addr)))
++       ((lambda (&rest r)
++          (apply 'error (if (find-package :conditions) r (list (format nil "~s" r)))))
+         (code-condition code)
+-        :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr) :operands m :function-name (when fun (fun-name fun))))
++        :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr)
++        :operands m
++        :function-name (when fun (fun-name fun))))
+      (break-on-floating-point-exceptions :no-flush t))
+-   (continue nil :report (lambda (s) (format s "Continue disabling floating point exception trapping"))
+-           (apply 'break-on-floating-point-exceptions
+-                  :no-flush t
+-                  (mapcan (lambda (x) (list x nil))
+-                          (break-on-floating-point-exceptions :no-flush t))))))
++    (continue nil
++      :report (lambda (s) (format s "Continue disabling floating point exception trapping"))
++      (apply 'break-on-floating-point-exceptions
++           :no-flush t
++           (mapcan (lambda (x) (list x nil))
++                   (break-on-floating-point-exceptions :no-flush t))))))
diff --git a/debian/patches/Version_2_7_2pre23 b/debian/patches/Version_2_7_2pre23
new file mode 100644 (file)
index 0000000..31b8c58
--- /dev/null
@@ -0,0 +1,47 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 16 2026 17:37:35 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1135720
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -87,10 +87,11 @@
+                 (let ((val (symbol-value form)))
+                   (or 
+                    (c1constant-value val nil)
+-                   (when (functionp val)
+-                     (c1function (list (fle val))))
+-                   `(location ,(make-info :type (object-type val)) (VV ,(add-constant form))))))
+-                                      ;                 ((c1var form))))
++                   `(location
++                     ,(make-info
++                       :type (if (functionp val) #tfunction (object-type val)));FIXME
++                     (VV ,(add-constant form))))))
++;                 ((c1var form))))
+                  ((c1expr-avct (c1var form))))) ;FIXME pcl
+           ((consp form)
+            (let ((fun (car form)))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre22"
++"Version_2_7_2pre23"
diff --git a/debian/patches/Version_2_7_2pre24 b/debian/patches/Version_2_7_2pre24
new file mode 100644 (file)
index 0000000..4f703f1
--- /dev/null
@@ -0,0 +1,443 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 22 2026 15:34:58 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -272,8 +272,11 @@ unixport/raw_%: unixport/lib%.a $(FF) $(
+                 $(CC) \
+                      $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
+                      $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \
+-                ("$$(printf '%s\n1167\n' $$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)"  != "1167" || \
+-                      ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
++                (  LV=$$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1); \
++                     echo "Linker version $$LV" ; \
++                     [ "$$(printf '%s\n1167\n' $$LV | sort -r -V |head -n 1)"  != "1167" ] || \
++                      ( echo "Patching" ; \
++                          printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
+                         codesign -s - --force $@ )))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4584,8 +4584,11 @@ unixport/raw_%: unixport/lib%.a $(FF) $(
+                 $(CC) \
+                      $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \
+                      $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \
+-                ("$$(printf '%s\n1167\n' $$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)"  != "1167" || \
+-                      ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
++                (  LV=$$(ld -v  2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1); \
++                     echo "Linker version $$LV" ; \
++                     [ "$$(printf '%s\n1167\n' $$LV | sort -r -V |head -n 1)"  != "1167" ] || \
++                      ( echo "Patching" ; \
++                          printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \
+                         codesign -s - --force $@ )))
+ unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp
+@@ -350,6 +350,7 @@
+               cadddr cdaddr cddadr cdddar cddddr logand lognot logior logxor c-type complex-real
+               complex-imag ratio-numerator ratio-denominator cnum-type si::number-plus si::number-minus
+               si::number-times si::number-divide ;FIXME more
++              si::expand-deftype
+               ,@(mapcar (lambda (x) (cdr x)) (remove-if-not (lambda (x) (symbolp (cdr x))) +cmp-type-alist+))))
+   (si::putprop l t 'c1no-side-effects))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpopt.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpopt.lsp
+@@ -895,9 +895,9 @@
+    (get 'truncate 'inline-always))
+ (push '((fixnum) (returns-exactly fixnum fixnum) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})")
+    (get 'truncate 'inline-always))
+-(push '((short-float) (returns-exactly fixnum short-float) #.(flags rfa)"({float _t=(#0);@1(#0)-_t@ _t;})")
++(push '((short-float) (returns-exactly fixnum short-float) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})")
+    (get 'truncate 'inline-always))
+-(push '((long-float) (returns-exactly fixnum long-float) #.(flags rfa)"({double _t=(#0);@1(#0)-_t@ _t;})")
++(push '((long-float) (returns-exactly fixnum long-float) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})")
+    (get 'truncate 'inline-always))
+ ;;COMPLEXP
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -4189,6 +4189,10 @@ if test "$use" = "gnuwin95" ; then
+    libboot="no"
+ fi
++case $use in
++   *86*gnu) libboot="no";;
++esac
++
+  if test "$libboot" = "yes"; then
+   AMM_LIBBOOT_TRUE=
+@@ -7210,7 +7214,8 @@ add_args_to_cflags  -fsigned-char -pipe
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+-                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
++                  -Wno-unused-but-set-variable -Wno-tautological-compare \
++                  -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
+                   -fbracket-depth=512
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+@@ -8858,10 +8863,10 @@ fi
+ case $use in
+-    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
+-    hppa*) ;;    #FIXME
+-    powerpc*) ;; #FIXME
+-    alpha*) ;;   #FIXME
++#    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
++#    hppa*) ;;    #FIXME
++#    powerpc*) ;; #FIXME
++#    alpha*) ;;   #FIXME
+     ia64*) ;;    #FIXME
+     *)
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5
+@@ -8880,8 +8885,8 @@ int
+ main (void)
+ {
+-                      void *v,*ve;
+-                      __builtin___clear_cache(v,ve);
++                      char v[1<<12];
++                      __builtin___clear_cache(v,v+sizeof(v));
+   ;
+   return 0;
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -82,6 +82,10 @@ if test "$use" = "gnuwin95" ; then
+    AC_SUBST(LF)
+    libboot="no"
+ fi
++case $use in
++   *86*gnu) libboot="no";;
++esac
++
+ AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"])
+ if test "$libboot" = "yes" ; then
+@@ -276,7 +280,8 @@ add_args_to_cflags  -fsigned-char -pipe
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+-                  -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
++                  -Wno-unused-but-set-variable -Wno-tautological-compare \
++                  -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
+                   -fbracket-depth=512
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+@@ -830,19 +835,19 @@ AC_RUN_IFELSE(
+ case $use in
+-    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
+-    hppa*) ;;    #FIXME
+-    powerpc*) ;; #FIXME
+-    alpha*) ;;   #FIXME
++#    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
++#    hppa*) ;;    #FIXME
++#    powerpc*) ;; #FIXME
++#    alpha*) ;;   #FIXME
+     ia64*) ;;    #FIXME
+     *)
+-      AC_MSG_CHECKING(__builtin___clear_cache)
++      AC_MSG_CHECKING([__builtin___clear_cache])
+       AC_RUN_IFELSE(
+           [AC_LANG_PROGRAM(
+                   [[]],
+                   [[
+-                      void *v,*ve;
+-                      __builtin___clear_cache(v,ve);
++                      char v[1<<12];
++                      __builtin___clear_cache(v,v+sizeof(v));
+                   ]])],
+           [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction])
+            AC_MSG_RESULT(yes)],
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre23"
++"Version_2_7_2pre24"
+--- gcl27-2.7.1.orig/h/hppa-linux.h
++++ gcl27-2.7.1/h/hppa-linux.h
+@@ -3,17 +3,17 @@
+ #define SGC
+ #define STATIC_FUNCTION_POINTERS
+-#ifdef IN_SFASL
+-#include <sys/mman.h>
+-#define CLEAR_CACHE_LINE_SIZE 32
+-#define CLEAR_CACHE {\
+-   void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size;     \
+-   v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\
+-   for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fdc 0(%0)" : : "r" (v) : "memory");\
+-   asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");\
+-   for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fic 0(%%sr4,%0)" : : "r" (v) : "memory");\
+-   asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");}
+-#endif
++/* #ifdef IN_SFASL */
++/* #include <sys/mman.h> */
++/* #define CLEAR_CACHE_LINE_SIZE 32 */
++/* #define CLEAR_CACHE {\ */
++/*    void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size;  \ */
++/*    v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */
++/*    for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fdc 0(%0)" : : "r" (v) : "memory");\ */
++/*    asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");\ */
++/*    for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fic 0(%%sr4,%0)" : : "r" (v) : "memory");\ */
++/*    asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");} */
++/* #endif */
+ #define RELOC_H "elf32_hppa_reloc.h"
+ #define SPECIAL_RELOC_H "elf32_hppa_reloc_special.h"
+--- gcl27-2.7.1.orig/h/m68k-linux.h
++++ gcl27-2.7.1/h/m68k-linux.h
+@@ -41,13 +41,13 @@
+ #define       M68K
+ /* #define SGC *//*FIXME:  Unknown m68k cpu in modern emulators*/
+-#include <asm/cachectl.h>
+-int cacheflush(void *,int,int,int);
+-#define CLEAR_CACHE_LINE_SIZE 32
+-#define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \
+-                        v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\
+-                        cacheflush(v,FLUSH_SCOPE_PAGE,FLUSH_CACHE_BOTH,ve-v);\
+-                    } while(0)
++/* #include <asm/cachectl.h> */
++/* int cacheflush(void *,int,int,int); */
++/* #define CLEAR_CACHE_LINE_SIZE 32 */
++/* #define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */
++/*                         v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */
++/*                         cacheflush(v,FLUSH_SCOPE_PAGE,FLUSH_CACHE_BOTH,ve-v);\ */
++/*                     } while(0) */
+ #define C_GC_OFFSET 2
+--- gcl27-2.7.1.orig/h/mach64_aarch64_reloc.h
++++ gcl27-2.7.1/h/mach64_aarch64_reloc.h
+@@ -43,10 +43,10 @@
+     addend=0;
+     a&=0xfff;
+     a>>=(((*q)>>29)&0x1)*                              /*not add/sub*/
+-          ((((*q)>>26)&0x1) ?                          /*simd*/
+-         ((((*q)>>22)&0x3) ?
+-          (((*q)>>22)&0x3)+1 : (((*q)>>30)&0x1)) :
+-         (((*q)>>30)&0x3));                          /*gp*/
++      (((((*q)>>26)&0x1)&&
++        (((*q)>>22)&0x1)&&
++      (!(((*q)>>30)&0x3))) ?                           /*simd hardcode*/
++       4 : (((*q)>>30)&0x3));                          /*gp*/
+     store_val(q,MASK(12) << 10, a << 10);
+     break;
+   case ARM64_RELOC_UNSIGNED:
+--- gcl27-2.7.1.orig/h/powerpc-linux.h
++++ gcl27-2.7.1/h/powerpc-linux.h
+@@ -2,12 +2,12 @@
+ #define SGC
+-#define CLEAR_CACHE_LINE_SIZE 32
+-#define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \
+-                        v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\
+-                        for (;v<ve;v+=CLEAR_CACHE_LINE_SIZE) \
+-                           asm __volatile__ ("dcbst 0,%0\n\tsync\n\ticbi 0,%0\n\tsync\n\tisync": : "r" (v) : "memory");\
+-                        } while(0)
++/* #define CLEAR_CACHE_LINE_SIZE 32 */
++/* #define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */
++/*                         v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */
++/*                         for (;v<ve;v+=CLEAR_CACHE_LINE_SIZE) \ */
++/*                            asm __volatile__ ("dcbst 0,%0\n\tsync\n\ticbi 0,%0\n\tsync\n\tisync": : "r" (v) : "memory");\ */
++/*                         } while(0) */
+ #if SIZEOF_LONG == 4
+ #define RELOC_H "elf32_ppc_reloc.h"
+--- gcl27-2.7.1.orig/h/sh4-linux.h
++++ gcl27-2.7.1/h/sh4-linux.h
+@@ -8,14 +8,14 @@
+ #define SGC
+-#ifdef IN_SFASL
+-#include <sys/mman.h>
+-#define CLEAR_CACHE {\
+-   void *p=memory->cfd.cfd_start,*pe=p+memory->cfd.cfd_size; \
+-   p=(void *)((unsigned long)p & ~(PAGESIZE-1)); \
+-   for (;p<pe;p++) /*+=PAGESIZE?*/ asm __volatile__ ("ocbp @%0\n\t": : "r" (p) : "memory");\
+-}
+-#endif
++/* #ifdef IN_SFASL */
++/* #include <sys/mman.h> */
++/* #define CLEAR_CACHE {\ */
++/*    void *p=memory->cfd.cfd_start,*pe=p+memory->cfd.cfd_size; \ */
++/*    p=(void *)((unsigned long)p & ~(PAGESIZE-1)); \ */
++/*    for (;p<pe;p++) /\*+=PAGESIZE?*\/ asm __volatile__ ("ocbp @%0\n\t": : "r" (p) : "memory");\ */
++/* } */
++/* #endif */
+ #define RELOC_H "elf32_sh4_reloc.h"
+ #define NEED_STACK_CHK_GUARD
+--- gcl27-2.7.1.orig/lsp/gcl_mislib.lsp
++++ gcl27-2.7.1/lsp/gcl_mislib.lsp
+@@ -89,16 +89,20 @@
+             (unless tzp (> dstp 0))
+             (if tzp tz (+ (truncate (- off) 3600) dstp))))))
+-(defun encode-universal-time (s n h d m y &optional (tz (this-tz) tzp))
++(defun encode-universal-time (s n h d m y &optional (tz (this-tz) tzp)
++                                          &aux (tzo (* (- tz (this-tz)) 3600)))
+   (declare (optimize (safety 2)))
+   (check-type s (integer 0 59))
+   (check-type n (integer 0 59))
+   (check-type h (integer 0 23))
+   (check-type d (integer 1 31))
+   (check-type m (integer 1 12))
+-  (check-type y integer)
++  (check-type y (integer 1899))
+   (check-type tz rational)
+-  (+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ (* (- tz (this-tz)) 3600)))
++  (cond ((eql 1899 y)
++       (assert (and (eql h 23) (eql d 31) (eql m 12)))
++       (+ s (* n 60) tzo))
++      ((+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ tzo))))
+ (defun get-decoded-time ()
+   (decode-universal-time (get-universal-time)))
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1308,7 +1308,7 @@ gcl_init_alloc(void *cs_start) {
+       ufixnum k;
+       for (p=pagetochar(page(v)),k=0;k<tm->tm_nppage;k++,p+=tm->tm_size) {
+       object o=p;
+-      if (!is_free(o) && type_of(o)==t_cfdata && (void *)o->cfd.cfd_start>=data_start)
++      if (!is_free(o) && type_of(o)==t_cfdata && !o->d.tt && (void *)o->cfd.cfd_start>=data_start)
+         gcl_mprotect((void *)o->cfd.cfd_start,o->cfd.cfd_nexp<<PAGEWIDTH,PROT_READ|PROT_EXEC);
+       }
+     }
+@@ -1707,7 +1707,12 @@ malloc_internal(size_t size) {
+     recursive_malloc=1;
+     gcl_init_alloc(&size);
+     recursive_malloc=0;
+-  }
++  } else
++    /*FIXME idempotent but required gcl_init_alloc functions in saved images*/
++#ifdef INITIALIZE_BRK
++    INITIALIZE_BRK;
++#endif
++
+   CHECK_INTERRUPT;
+   
+--- gcl27-2.7.1.orig/o/funlink.c
++++ gcl27-2.7.1/o/funlink.c
+@@ -291,7 +291,7 @@ call_proc_new23(object sym,ufixnum clp,u
+               fas=0;
+       else if (u.f.va &&(nfargs<fun->fun.fun_minarg || nfargs>fun->fun.fun_maxarg))/*u.f.va -> varg, xxx*/
+       fas=0;
+-      else if (u.f.va && VFUN_NARGS<0 && fun->fun.fun_minarg==fun->fun.fun_maxarg)/*runtime apply #arg checking omitted in reg fns*/
++      else if (u.f.va && /* VFUN_NARGS<0 &&  */fun->fun.fun_minarg==fun->fun.fun_maxarg)/*runtime apply #arg checking omitted in reg fns*/
+       fas=0;
+       /* else if (u.f.va && VFUN_NARGS<0 && */
+       /*             (nargs-1<fun->fun.fun_minarg || nargs-1>fun->fun.fun_maxarg))/\*u.f.va -> varg, xxx*\/ */
+--- gcl27-2.7.1.orig/o/sfaslcoff.c
++++ gcl27-2.7.1/o/sfaslcoff.c
+@@ -488,8 +488,12 @@ fasload(object faslfile) {
+   massert(!un_mmap(st,est));
+-#ifdef CLEAR_CACHE
++#if defined(CLEAR_CACHE)
+   CLEAR_CACHE;
++#elif defined(HAVE_BUILTIN_CLEAR_CACHE)
++  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
++#else
++  #error "No clear cache"
+ #endif
+   if(symbol_value(sLAload_verboseA)!=Cnil) {
+--- gcl27-2.7.1.orig/o/sfaslelf.c
++++ gcl27-2.7.1/o/sfaslelf.c
+@@ -627,10 +627,12 @@ fasload(object faslfile) {
+   
+   massert(!clear_protect_memory(memory));
+-#if defined(HAVE_BUILTIN_CLEAR_CACHE)
+-  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
+-#elif defined(CLEAR_CACHE)
++#if defined(CLEAR_CACHE)
+   CLEAR_CACHE;
++#elif defined(HAVE_BUILTIN_CLEAR_CACHE)
++  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
++#else
++  #error "No clear cache"
+ #endif  
+   if(symbol_value(sLAload_verboseA)!=Cnil) {
+--- gcl27-2.7.1.orig/o/sfaslmacho.c
++++ gcl27-2.7.1/o/sfaslmacho.c
+@@ -31,6 +31,10 @@
+ #define LOAD_SEC(sec) ({ul _fl=sec->flags&SECTION_TYPE;\
+       (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL && !(sec->flags&S_ATTR_DEBUG);})
++#define GCL_EXTERNAL(sym) ((sym)->n_type & N_EXT || \
++                         (((sym)->n_type & N_TYPE) == N_SECT && \
++                          (sym)->n_sect == 1 && \
++                          !memcmp(strtab+(sym)->n_un.n_strx,"___",3)))
+ #define MASK(n) (~(~0ULL << (n)))
+@@ -488,7 +492,7 @@ load_self_symbols() {
+   for (a=c_table.ptable,sym=sym1;sym<syme;sym++) {
+     
+-    if ((sym->n_type & N_STAB) || !(sym->n_type & N_EXT))
++    if ((sym->n_type & N_STAB) || !GCL_EXTERNAL(sym))
+       continue;
+     a->address=sym->n_value;
+@@ -504,7 +508,7 @@ load_self_symbols() {
+   for (c_table.local_ptable=a,sym=sym1;sym<syme;sym++) {
+-    if ((sym->n_type & N_STAB) || sym->n_type & N_EXT)
++    if ((sym->n_type & N_STAB) || GCL_EXTERNAL(sym))
+       continue;
+     a->address=sym->n_value;
+@@ -645,10 +649,12 @@ fasload(object faslfile) {
+   
+   massert(!clear_protect_memory(memory));
+-#if defined(HAVE_BUILTIN_CLEAR_CACHE)
+-  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
+-#elif defined(CLEAR_CACHE)
++#if defined(CLEAR_CACHE)
+   CLEAR_CACHE;
++#elif defined(HAVE_BUILTIN_CLEAR_CACHE)
++  __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size);
++#else
++  #error "No clear cache"
+ #endif
+   
+   massert(!un_mmap(v1,ve));
diff --git a/debian/patches/Version_2_7_2pre25 b/debian/patches/Version_2_7_2pre25
new file mode 100644 (file)
index 0000000..ebf1d75
--- /dev/null
@@ -0,0 +1,7166 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 27 2026 18:02:01 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -465,7 +465,9 @@ CMPINCLUDE_FILES=h/cmpincl1.h h/gclincl.
+ CLEANFILES+=h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h
+ h/mstdint.h:
+-      echo "#include <stdint.h>" | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@
++      echo "#include <stdint.h>" | \
++              $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
++              grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4763,7 +4763,9 @@ ansi_gcl/%.o: clcs/%.lisp | unixport/ans
+       cat $*.data >>$@
+ h/mstdint.h:
+-      echo "#include <stdint.h>" | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@
++      echo "#include <stdint.h>" | \
++              $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
++              grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+--- gcl27-2.7.1.orig/aclocal.m4
++++ gcl27-2.7.1/aclocal.m4
+@@ -14,8 +14,8 @@
+ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],,
+-[m4_warning([this file was generated for autoconf 2.72.
++m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.73],,
++[m4_warning([this file was generated for autoconf 2.73.
+ You have another version of autoconf.  It may work, but is not guaranteed to.
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.72 for gcl 2.7.1.
++# Generated by GNU Autoconf 2.73 for gcl 2.7.1.
+ #
+ #
+-# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
++# Copyright (C) 1992-1996, 1998-2017, 2020-2026 Free Software Foundation,
+ # Inc.
+ #
+ #
+@@ -20,7 +20,7 @@ then :
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
++  # contradicts POSIX and common usage.  Disable this.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else case e in #(
+@@ -107,7 +107,7 @@ if test "x$as_myself" = x; then
+   as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+-  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
++  printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+   exit 1
+ fi
+@@ -129,10 +129,13 @@ case $- in # ((((
+   *x* ) as_opts=-x ;;
+   * ) as_opts= ;;
+ esac
+-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++case $# in # ((
++  0) exec $CONFIG_SHELL $as_opts "$as_myself" ;;
++  *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;;
++esac
+ # Admittedly, this is quite paranoid, since all the known shells bail
+ # out after a failed 'exec'.
+-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
++printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2
+ exit 255
+   fi
+   # We don't want this to propagate to other subprocesses.
+@@ -143,7 +146,7 @@ then :
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+-  # is contrary to our usage.  Disable this feature.
++  # contradicts POSIX and common usage.  Disable this.
+   alias -g '\${1+\"\$@\"}'='\"\$@\"'
+   setopt NO_GLOB_SUBST
+ else case e in #(
+@@ -253,22 +256,25 @@ case $- in # ((((
+   *x* ) as_opts=-x ;;
+   * ) as_opts= ;;
+ esac
+-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
++case $# in # ((
++  0) exec $CONFIG_SHELL $as_opts "$as_myself" ;;
++  *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;;
++esac
+ # Admittedly, this is quite paranoid, since all the known shells bail
+ # out after a failed 'exec'.
+-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
++printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2
+ exit 255
+ fi
+     if test x$as_have_required = xno
+ then :
+-  printf "%s\n" "$0: This script requires a shell more modern than all"
+-  printf "%s\n" "$0: the shells that I found on your system."
++  printf '%s\n' "$0: This script requires a shell more modern than all"
++  printf '%s\n' "$0: the shells that I found on your system."
+   if test ${ZSH_VERSION+y} ; then
+-    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+-    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
++    printf '%s\n' "$0: In particular, zsh $ZSH_VERSION has bugs and should"
++    printf '%s\n' "$0: be upgraded to zsh 4.3.4 or later."
+   else
+-    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system,
++    printf '%s\n' "$0: Please tell bug-autoconf@gnu.org about your system,
+ $0: including any error possibly output before this
+ $0: message. Then install a modern shell, or manually run
+ $0: the script under such a shell if you do have one."
+@@ -328,7 +334,7 @@ as_fn_mkdir_p ()
+     as_dirs=
+     while :; do
+       case $as_dir in #(
+-      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++      *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+       *) as_qdir=$as_dir;;
+       esac
+       as_dirs="'$as_qdir' $as_dirs"
+@@ -337,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$as_dir" |
++printf '%s\n' X"$as_dir" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -420,9 +426,9 @@ as_fn_error ()
+   as_status=$1; test $as_status -eq 0 && as_status=1
+   if test "$4"; then
+     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+   fi
+-  printf "%s\n" "$as_me: error: $2" >&2
++  printf '%s\n' "$as_me: error: $2" >&2
+   as_fn_exit $as_status
+ } # as_fn_error
+@@ -449,7 +455,7 @@ as_me=`$as_basename -- "$0" ||
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X/"$0" |
++printf '%s\n' X/"$0" |
+     sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+@@ -495,7 +501,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
+       s/-\n.*//
+     ' >$as_me.lineno &&
+   chmod +x "$as_me.lineno" ||
+-    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
++    { printf '%s\n' "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+   # already done that, so ensure we don't try to do so again and fall
+@@ -509,29 +515,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
+   exit
+ }
+-
+-# Determine whether it's possible to make 'echo' print without a newline.
+-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+-# for compatibility with existing Makefiles.
+-ECHO_C= ECHO_N= ECHO_T=
+-case `echo -n x` in #(((((
+--n*)
+-  case `echo 'xy\c'` in
+-  *c*) ECHO_T='       ';;     # ECHO_T is single tab character.
+-  xy)  ECHO_C='\c';;
+-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+-       ECHO_T='       ';;
+-  esac;;
+-*)
+-  ECHO_N='-n';;
+-esac
+-
+-# For backward compatibility with old third-party macros, we provide
+-# the shell variables $as_echo and $as_echo_n.  New code should use
+-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+-as_echo='printf %s\n'
+-as_echo_n='printf %s'
+-
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+   rm -f conf$$.dir/conf$$.file
+@@ -590,6 +573,7 @@ ac_hostname=`(hostname || uname -n) 2>/d
+ # Initializations.
+ #
+ ac_default_prefix=/usr/local
++ac_clean_CONFIG_STATUS=
+ ac_clean_files=
+ ac_config_libobj_dir=.
+ LIBOBJS=
+@@ -768,13 +752,13 @@ am__isrc
+ INSTALL_DATA
+ INSTALL_SCRIPT
+ INSTALL_PROGRAM
++ECHO_T
++ECHO_N
++ECHO_C
+ target_alias
+ host_alias
+ build_alias
+ LIBS
+-ECHO_T
+-ECHO_N
+-ECHO_C
+ DEFS
+ mandir
+ localedir
+@@ -967,7 +951,7 @@ do
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       as_fn_error $? "invalid feature name: '$ac_useropt'"
+     ac_useropt_orig=$ac_useropt
+-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
++    ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "enable_$ac_useropt"
+@@ -993,7 +977,7 @@ do
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       as_fn_error $? "invalid feature name: '$ac_useropt'"
+     ac_useropt_orig=$ac_useropt
+-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
++    ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "enable_$ac_useropt"
+@@ -1206,7 +1190,7 @@ do
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       as_fn_error $? "invalid package name: '$ac_useropt'"
+     ac_useropt_orig=$ac_useropt
+-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
++    ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "with_$ac_useropt"
+@@ -1222,7 +1206,7 @@ do
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       as_fn_error $? "invalid package name: '$ac_useropt'"
+     ac_useropt_orig=$ac_useropt
+-    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
++    ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "with_$ac_useropt"
+@@ -1266,9 +1250,9 @@ Try '$0 --help' for more information"
+   *)
+     # FIXME: should be removed in autoconf 3.0.
+-    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
++    printf '%s\n' "$as_me: WARNING: you should use --build, --host, --target" >&2
+     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+-      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
++      printf '%s\n' "$as_me: WARNING: invalid host type: $ac_option" >&2
+     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+     ;;
+@@ -1276,7 +1260,7 @@ Try '$0 --help' for more information"
+ done
+ if test -n "$ac_prev"; then
+-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
++  ac_option=--`printf '%s\n' $ac_prev | sed 's/_/-/g'`
+   as_fn_error $? "missing argument to $ac_option"
+ fi
+@@ -1284,7 +1268,7 @@ if test -n "$ac_unrecognized_opts"; then
+   case $enable_option_checking in
+     no) ;;
+     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+-    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
++    *)     printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+   esac
+ fi
+@@ -1348,7 +1332,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*
+        X"$as_myself" : 'X\(//\)[^/]' \| \
+        X"$as_myself" : 'X\(//\)$' \| \
+        X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$as_myself" |
++printf '%s\n' X"$as_myself" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -1563,9 +1547,9 @@ if test "$ac_init_help" = "recursive"; t
+ case "$ac_dir" in
+ .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *)
+-  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
++  ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'`
+   # A ".." for each directory in $ac_dir_suffix.
+-  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
++  ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+   case $ac_top_builddir_sub in
+   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+@@ -1602,7 +1586,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_
+       echo &&
+       $SHELL "$ac_srcdir/configure" --help=recursive
+     else
+-      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
++      printf '%s\n' "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+     fi || ac_status=$?
+     cd "$ac_pwd" || { ac_status=$?; break; }
+   done
+@@ -1612,9 +1596,9 @@ test -n "$ac_init_help" && exit $ac_stat
+ if $ac_init_version; then
+   cat <<\_ACEOF
+ gcl configure 2.7.1
+-generated by GNU Autoconf 2.72
++generated by GNU Autoconf 2.73
+-Copyright (C) 2023 Free Software Foundation, Inc.
++Copyright (C) 2026 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+@@ -1638,7 +1622,7 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_compile") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+@@ -1646,7 +1630,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+@@ -1654,7 +1638,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+ then :
+   ac_retval=0
+ else case e in #(
+-  e) printf "%s\n" "$as_me: failed program was:" >&5
++  e) printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+       ac_retval=1 ;;
+@@ -1672,7 +1656,7 @@ fi
+ ac_fn_c_check_header_compile ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ printf %s "checking for $2... " >&6; }
+ if eval test \${$3+y}
+ then :
+@@ -1694,8 +1678,8 @@ rm -f core conftest.err conftest.$ac_obj
+ esac
+ fi
+ eval ac_res=\$$3
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
++             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf '%s\n' "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_c_check_header_compile
+@@ -1712,7 +1696,7 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+@@ -1720,7 +1704,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+@@ -1728,7 +1712,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+ then :
+   ac_retval=0
+ else case e in #(
+-  e) printf "%s\n" "$as_me: failed program was:" >&5
++  e) printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+     ac_retval=1 ;;
+@@ -1752,26 +1736,26 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+   { { case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; }
+ then :
+   ac_retval=0
+ else case e in #(
+-  e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+-       printf "%s\n" "$as_me: failed program was:" >&5
++  e) printf '%s\n' "$as_me: program exited with status $ac_status" >&5
++       printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+        ac_retval=$ac_status ;;
+@@ -1790,7 +1774,7 @@ fi
+ ac_fn_c_check_member ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+ printf %s "checking for $2.$3... " >&6; }
+ if eval test \${$4+y}
+ then :
+@@ -1840,8 +1824,8 @@ rm -f core conftest.err conftest.$ac_obj
+ esac
+ fi
+ eval ac_res=\$$4
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
++             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf '%s\n' "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_c_check_member
+@@ -1859,7 +1843,7 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_link") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+@@ -1867,7 +1851,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+@@ -1878,7 +1862,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+ then :
+   ac_retval=0
+ else case e in #(
+-  e) printf "%s\n" "$as_me: failed program was:" >&5
++  e) printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+       ac_retval=1 ;;
+@@ -1900,7 +1884,7 @@ fi
+ ac_fn_c_check_func ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ printf %s "checking for $2... " >&6; }
+ if eval test \${$3+y}
+ then :
+@@ -1952,8 +1936,8 @@ rm -f core conftest.err conftest.$ac_obj
+ esac
+ fi
+ eval ac_res=\$$3
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
++             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf '%s\n' "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_c_check_func
+@@ -2161,7 +2145,7 @@ ac_fn_check_decl ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   as_decl_name=`echo $2|sed 's/ *(.*//'`
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+ printf %s "checking whether $as_decl_name is declared... " >&6; }
+ if eval test \${$3+y}
+ then :
+@@ -2201,8 +2185,8 @@ rm -f core conftest.err conftest.$ac_obj
+ esac
+ fi
+ eval ac_res=\$$3
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
++             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf '%s\n' "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_check_decl
+@@ -2211,7 +2195,7 @@ for ac_arg
+ do
+   case $ac_arg in
+   *\'*)
+-    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+   esac
+   as_fn_append ac_configure_args_raw " '$ac_arg'"
+ done
+@@ -2223,7 +2207,7 @@ case $ac_configure_args_raw in
+     ac_unsafe_z='|&;<>()$`\\"*?[ ''   ' # This string ends in space, tab.
+     ac_unsafe_a="$ac_unsafe_z#~"
+     ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+-    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
++    ac_configure_args_raw=`      printf '%s\n' "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+ esac
+ cat >config.log <<_ACEOF
+@@ -2231,7 +2215,7 @@ This file contains any messages produced
+ running configure, to aid debugging if configure makes a mistake.
+ It was created by gcl $as_me 2.7.1, which was
+-generated by GNU Autoconf 2.72.  Invocation command line was
++generated by GNU Autoconf 2.73.  Invocation command line was
+   $ $0$ac_configure_args_raw
+@@ -2271,7 +2255,7 @@ do
+     */) ;;
+     *) as_dir=$as_dir/ ;;
+   esac
+-    printf "%s\n" "PATH: $as_dir"
++    printf '%s\n' "PATH: $as_dir"
+   done
+ IFS=$as_save_IFS
+@@ -2306,7 +2290,7 @@ do
+     | -silent | --silent | --silen | --sile | --sil)
+       continue ;;
+     *\'*)
+-      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++      ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     esac
+     case $ac_pass in
+     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+@@ -2335,31 +2319,22 @@ done
+ { ac_configure_args0=; unset ac_configure_args0;}
+ { ac_configure_args1=; unset ac_configure_args1;}
+-# When interrupted or exit'd, cleanup temporary files, and complete
+-# config.log.  We remove comments because anyway the quotes in there
+-# would cause problems or look ugly.
+-# WARNING: Use '\'' to represent an apostrophe within the trap.
+-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+-trap 'exit_status=$?
+-  # Sanitize IFS.
+-  IFS=" ""    $as_nl"
+-  # Save into config.log some information that might help in debugging.
+-  {
+-    echo
+-
+-    printf "%s\n" "## ---------------- ##
+-## Cache variables. ##
+-## ---------------- ##"
+-    echo
+-    # The following way of writing the cache mishandles newlines in values,
++# Dump the cache to stdout.  It can be in a pipe (this is a requirement).
++ac_cache_dump ()
++{
++  # The following way of writing the cache mishandles newlines in values,
++# but we know of no workaround that is simple, portable, and efficient.
++# So, we kill variables containing newlines.
++# Ultrix sh set writes to stderr and can't be redirected directly,
++# and sets the high bit in the cache file unless we assign to the vars.
+ (
+-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
++  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+     eval ac_val=\$$ac_var
+     case $ac_val in #(
+     *${as_nl}*)
+       case $ac_var in #(
+-      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
++      *_cv_*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
++printf '%s\n' "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+       esac
+       case $ac_var in #(
+       _ | IFS | as_nl) ;; #(
+@@ -2368,67 +2343,95 @@ printf "%s\n" "$as_me: WARNING: cache va
+       esac ;;
+     esac
+   done
++
+   (set) 2>&1 |
+-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
++    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+     *${as_nl}ac_space=\ *)
++      # 'set' does not quote correctly, so add quotes: double-quote
++      # substitution turns \\\\ into \\, and sed turns \\ into \.
+       sed -n \
+-      "s/'\''/'\''\\\\'\'''\''/g;
+-        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
++      "s/'/'\\\\''/g;
++        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+       ;; #(
+     *)
++      # 'set' quotes correctly as required by POSIX, so do not add quotes.
+       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+       ;;
+     esac |
+     sort
+ )
+-    echo
++}
++
++# Print debugging info to stdout.
++ac_dump_debugging_info ()
++{
++  echo
++
++  printf '%s\n' "## ---------------- ##
++## Cache variables. ##
++## ---------------- ##"
++  echo
++  ac_cache_dump
++  echo
+-    printf "%s\n" "## ----------------- ##
++  printf '%s\n' "## ----------------- ##
+ ## Output variables. ##
+ ## ----------------- ##"
++  echo
++  for ac_var in $ac_subst_vars
++  do
++    eval ac_val=\$$ac_var
++    case $ac_val in
++    *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;;
++    esac
++    printf '%s\n' "$ac_var='$ac_val'"
++  done | sort
++  echo
++
++  if test -n "$ac_subst_files"; then
++    printf '%s\n' "## ------------------- ##
++## File substitutions. ##
++## ------------------- ##"
+     echo
+-    for ac_var in $ac_subst_vars
++    for ac_var in $ac_subst_files
+     do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+-      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
++      *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;;
+       esac
+-      printf "%s\n" "$ac_var='\''$ac_val'\''"
++      printf '%s\n' "$ac_var='$ac_val'"
+     done | sort
+     echo
++  fi
+-    if test -n "$ac_subst_files"; then
+-      printf "%s\n" "## ------------------- ##
+-## File substitutions. ##
+-## ------------------- ##"
+-      echo
+-      for ac_var in $ac_subst_files
+-      do
+-      eval ac_val=\$$ac_var
+-      case $ac_val in
+-      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+-      esac
+-      printf "%s\n" "$ac_var='\''$ac_val'\''"
+-      done | sort
+-      echo
+-    fi
+-
+-    if test -s confdefs.h; then
+-      printf "%s\n" "## ----------- ##
++  if test -s confdefs.h; then
++    printf '%s\n' "## ----------- ##
+ ## confdefs.h. ##
+ ## ----------- ##"
+-      echo
+-      cat confdefs.h
+-      echo
+-    fi
+-    test "$ac_signal" != 0 &&
+-      printf "%s\n" "$as_me: caught signal $ac_signal"
+-    printf "%s\n" "$as_me: exit $exit_status"
+-  } >&5
+-  rm -f core *.core core.conftest.* &&
++    echo
++    cat confdefs.h
++    echo
++  fi
++  test "$ac_signal" != 0 &&
++    printf '%s\n' "$as_me: caught signal $ac_signal"
++  printf '%s\n' "$as_me: exit $exit_status"
++}
++
++# When interrupted or exit'd, cleanup temporary files, and complete
++# config.log.
++ac_exit_trap ()
++{
++  exit_status=
++  # Sanitize IFS.
++  IFS=" ""    $as_nl"
++  # Save into config.log some information that might help in debugging.
++  ac_dump_debugging_info >&5
++  eval "rm -f $ac_clean_CONFIG_STATUS core *.core core.conftest.*" &&
+     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+     exit $exit_status
+-' 0
++}
++
++trap 'ac_exit_trap $?' 0
+ for ac_signal in 1 2 13 15; do
+   trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+ done
+@@ -2437,21 +2440,21 @@ ac_signal=0
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -f -r conftest* confdefs.h
+-printf "%s\n" "/* confdefs.h */" > confdefs.h
++printf '%s\n' "/* confdefs.h */" > confdefs.h
+ # Predefined preprocessor variables.
+-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
+-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
+-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
+-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
+-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
+-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
+ # Let the site file select an alternate cache file if it wants to.
+@@ -2473,12 +2476,12 @@ do
+     ac_site_file=./$ac_site_file ;;
+ esac
+   if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
++printf '%s\n' "$as_me: loading site script $ac_site_file" >&6;}
+     sed 's/^/| /' "$ac_site_file" >&5
+     . "$ac_site_file" \
+-      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++      || { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "failed to load site script $ac_site_file
+ See 'config.log' for more details" "$LINENO" 5; }
+   fi
+@@ -2488,28 +2491,121 @@ if test -r "$cache_file"; then
+   # Some versions of bash will fail to source /dev/null (special files
+   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
++printf '%s\n' "$as_me: loading cache $cache_file" >&6;}
+     case $cache_file in
+       [\\/]* | ?:[\\/]* ) . "$cache_file";;
+       *)                      . "./$cache_file";;
+     esac
+   fi
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
++printf '%s\n' "$as_me: creating cache $cache_file" >&6;}
+   >$cache_file
+ fi
+ as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
++# Test code for whether the C compiler supports C23 (global declarations)
++ac_c_conftest_c23_globals='
++/* Does the compiler advertise conformance to C17 or earlier?
++   Although GCC 14 does not do that, even with -std=gnu23,
++   it is close enough, and defines __STDC_VERSION == 202000L.  */
++#if !defined __STDC_VERSION__ || __STDC_VERSION__ <= 201710L
++# error "Compiler advertises conformance to C17 or earlier"
++#endif
++
++// Check alignas.
++char alignas (double) c23_aligned_as_double;
++char alignas (0) c23_no_special_alignment;
++extern char c23_aligned_as_int;
++char alignas (0) alignas (int) c23_aligned_as_int;
++
++// Check alignof.
++enum
++{
++  c23_int_alignment = alignof (int),
++  c23_int_array_alignment = alignof (int[100]),
++  c23_char_alignment = alignof (char)
++};
++static_assert (0 < -alignof (int), "alignof is signed");
++
++int function_with_unnamed_parameter (int) { return 0; }
++
++void c23_noreturn ();
++
++/* Test parsing of string and char UTF-8 literals (including hex escapes).
++   The parens pacify GCC 15.  */
++bool use_u8 = (!sizeof u8"\xFF") == (!u8'\''x'\'');
++
++bool check_that_bool_works = true | false | !nullptr;
++#if !true
++# error "true does not work in #if"
++#endif
++#if false
++#elifdef __STDC_VERSION__
++#else
++# error "#elifdef does not work"
++#endif
++
++#ifndef __has_c_attribute
++# error "__has_c_attribute not defined"
++#endif
++
++#ifndef __has_include
++# error "__has_include not defined"
++#endif
++
++#define LPAREN() (
++#define FORTY_TWO(x) 42
++#define VA_OPT_TEST(r, x, ...) __VA_OPT__ (FORTY_TWO r x))
++static_assert (VA_OPT_TEST (LPAREN (), 0, <:-) == 42);
++
++static_assert (0b101010 == 42);
++static_assert (0B101010 == 42);
++static_assert (0xDEAD'\''BEEF == 3'\''735'\''928'\''559);
++static_assert (0.500'\''000'\''000 == 0.5);
++
++enum unsignedish : unsigned int { uione = 1 };
++static_assert (0 < -uione);
++
++#include <stddef.h>
++constexpr nullptr_t null_pointer = nullptr;
++
++static typeof (1 + 1L) two () { return 2; }
++static long int three () { return 3; }
++'
++
++# Test code for whether the C compiler supports C23 (body of main).
++ac_c_conftest_c23_main='
++  {
++    label_before_declaration:
++      int arr[10] = {};
++      if (arr[0])
++        goto label_before_declaration;
++      if (!arr[0])
++        goto label_at_end_of_block;
++    label_at_end_of_block:
++  }
++  ok |= !null_pointer;
++  ok |= two != three;
++'
++
++# Test code for whether the C compiler supports C23 (complete).
++ac_c_conftest_c23_program="${ac_c_conftest_c23_globals}
++
++int
++main (int, char **)
++{
++  int ok = 0;
++  ${ac_c_conftest_c23_main}
++  return ok;
++}
++"
++
+ # Test code for whether the C compiler supports C89 (global declarations)
+ ac_c_conftest_c89_globals='
+-/* Does the compiler advertise C89 conformance?
+-   Do not test the value of __STDC__, because some compilers set it to 0
+-   while being otherwise adequately conformant. */
+-#if !defined __STDC__
+-# error "Compiler does not advertise C89 conformance"
+-#endif
++/* Do not test the value of __STDC__, because some compilers define it to 0
++   or do not define it, while otherwise adequately conforming.  */
+ #include <stddef.h>
+ #include <stdarg.h>
+@@ -2589,7 +2685,8 @@ extern void free (void *);
+ // Check varargs macros.  These examples are taken from C99 6.10.3.5.
+ // dprintf is used instead of fprintf to avoid needing to declare
+-// FILE and stderr.
++// FILE and stderr, and "aND" is used instead of "and" to work around
++// GCC bug 40564 which is irrelevant here.
+ #define debug(...) dprintf (2, __VA_ARGS__)
+ #define showlist(...) puts (#__VA_ARGS__)
+ #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+@@ -2600,7 +2697,7 @@ test_varargs_macros (void)
+   int y = 5678;
+   debug ("Flag");
+   debug ("X = %d\n", x);
+-  showlist (The first, second, and third items.);
++  showlist (The first, second, aND third items.);
+   report (x>y, "x is %d but y is %d", x, y);
+ }
+@@ -2688,15 +2785,15 @@ ac_c_conftest_c99_main='
+   // Check restrict.
+   if (test_restrict ("String literal") == 0)
+     success = true;
+-  char *restrict newvar = "Another string";
++  const char *restrict newvar = "Another string";
+   // Check varargs.
+   success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+   test_varargs_macros ();
+   // Check flexible array members.
+-  struct incomplete_array *ia =
+-    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
++  static struct incomplete_array *volatile incomplete_array_pointer;
++  struct incomplete_array *ia = incomplete_array_pointer;
+   ia->datasize = 10;
+   for (int i = 0; i < ia->datasize; ++i)
+     ia->data[i] = i * 1.234;
+@@ -2712,13 +2809,12 @@ ac_c_conftest_c99_main='
+   ni.number = 58;
+-  int dynamic_array[ni.number];
+-  dynamic_array[0] = argv[0][0];
+-  dynamic_array[ni.number - 1] = 543;
++  // Do not test for VLAs, as some otherwise-conforming compilers lack them.
++  // C code should instead use __STDC_NO_VLA__; see Autoconf manual.
+   // work around unused variable warnings
+   ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+-       || dynamic_array[ni.number - 1] != 543);
++       || ni.number != 58);
+ '
+ # Test code for whether the C compiler supports C11 (global declarations)
+@@ -2851,7 +2947,7 @@ ac_aux_dir_candidates="${srcdir}${PATH_S
+ # $ac_aux_dir_candidates and give up.
+ ac_missing_aux_files=""
+ ac_first_candidate=:
+-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
++printf '%s\n' "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ as_found=false
+ for as_dir in $ac_aux_dir_candidates
+@@ -2864,7 +2960,7 @@ do
+   esac
+   as_found=:
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+   ac_aux_dir_found=yes
+   ac_install_sh=
+   for ac_aux in $ac_aux_files
+@@ -2875,13 +2971,13 @@ do
+     if test x"$ac_aux" = x"install-sh"
+     then
+       if test -f "${as_dir}install-sh"; then
+-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
++        printf '%s\n' "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+         ac_install_sh="${as_dir}install-sh -c"
+       elif test -f "${as_dir}install.sh"; then
+-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
++        printf '%s\n' "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+         ac_install_sh="${as_dir}install.sh -c"
+       elif test -f "${as_dir}shtool"; then
+-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
++        printf '%s\n' "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+         ac_install_sh="${as_dir}shtool install -c"
+       else
+         ac_aux_dir_found=no
+@@ -2893,7 +2989,7 @@ do
+       fi
+     else
+       if test -f "${as_dir}${ac_aux}"; then
+-        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
++        printf '%s\n' "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+       else
+         ac_aux_dir_found=no
+         if $ac_first_candidate; then
+@@ -2946,38 +3042,44 @@ for ac_var in $ac_precious_vars; do
+   eval ac_new_val=\$ac_env_${ac_var}_value
+   case $ac_old_set,$ac_new_set in
+     set,)
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
+-printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
++printf '%s\n' "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,set)
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
+-printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
++printf '%s\n' "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,);;
+     *)
+       if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+-      ac_old_val_w=`echo x $ac_old_val`
+-      ac_new_val_w=`echo x $ac_new_val`
++      ac_old_val_w=
++      for ac_val in x $ac_old_val; do
++        ac_old_val_w="$ac_old_val_w $ac_val"
++      done
++      ac_new_val_w=
++      for ac_val in x $ac_new_val; do
++        ac_new_val_w="$ac_new_val_w $ac_val"
++      done
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
+-printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
++        { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
++printf '%s\n' "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
+-printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
++        { printf '%s\n' "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
++printf '%s\n' "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  '$ac_old_val'" >&5
+-printf "%s\n" "$as_me:   former value:  '$ac_old_val'" >&2;}
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: '$ac_new_val'" >&5
+-printf "%s\n" "$as_me:   current value: '$ac_new_val'" >&2;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}:   former value:  '$ac_old_val'" >&5
++printf '%s\n' "$as_me:   former value:  '$ac_old_val'" >&2;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}:   current value: '$ac_new_val'" >&5
++printf '%s\n' "$as_me:   current value: '$ac_new_val'" >&2;}
+       fi;;
+   esac
+   # Pass precious variables to config.status.
+   if test "$ac_new_set" = set; then
+     case $ac_new_val in
+-    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
++    *\'*) ac_arg=$ac_var=`printf '%s\n' "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+     *) ac_arg=$ac_var=$ac_new_val ;;
+     esac
+     case " $ac_configure_args " in
+@@ -2987,10 +3089,10 @@ printf "%s\n" "$as_me:   current value:
+   fi
+ done
+ if $ac_cache_corrupted; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
++printf '%s\n' "$as_me: error: changes in the environment can compromise the build" >&2;}
+   as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
+           and start over" "$LINENO" 5
+ fi
+@@ -2998,6 +3100,23 @@ fi
+ ## Main body of script. ##
+ ## -------------------- ##
++
++# Determine whether it's possible to make 'echo' print without a newline.
++# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
++# for compatibility with existing Makefiles.
++ECHO_C= ECHO_N= ECHO_T=
++case `echo -n x` in #(((((
++-n*)
++  case `echo 'xy\c'` in
++  *c*) ECHO_T='       ';;     # ECHO_T is single tab character.
++  xy)  ECHO_C='\c';;
++  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
++       ECHO_T='       ';;
++  esac;;
++*)
++  ECHO_N='-n';;
++esac
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -3026,7 +3145,7 @@ am__api_version='1.18'
+ # OS/2's system install, which has a completely different semantic
+ # ./install, which can be erroneously created by make from ./install.sh.
+ # Reject install programs that cannot install multiple files.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+ printf %s "checking for a BSD-compatible install... " >&6; }
+ if test -z "$INSTALL"; then
+ if test ${ac_cv_path_install+y}
+@@ -3049,8 +3168,8 @@ case $as_dir in #((
+   ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+   /usr/ucb/* ) ;;
+   *)
+-    # OSF1 and SCO ODT 3.0 have their own names for install.
+-    # Don't use installbsd from OSF since it installs stuff as root
++    # OSF/1 and SCO ODT 3.0 have their own names for install.
++    # Don't use installbsd from OSF/1 since it installs stuff as root
+     # by default.
+     for ac_prog in ginstall scoinst install; do
+       for ac_exec_ext in '' $ac_executable_extensions; do
+@@ -3100,8 +3219,8 @@ fi
+     INSTALL=$ac_install_sh
+   fi
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+-printf "%s\n" "$INSTALL" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
++printf '%s\n' "$INSTALL" >&6; }
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+@@ -3111,7 +3230,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5
+ printf %s "checking whether sleep supports fractional seconds... " >&6; }
+ if test ${am_cv_sleep_fractional_seconds+y}
+ then :
+@@ -3127,10 +3246,10 @@ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5
+-printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5
++printf '%s\n' "$am_cv_sleep_fractional_seconds" >&6; }
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5
+ printf %s "checking filesystem timestamp resolution... " >&6; }
+ if test ${am_cv_filesystem_timestamp_resolution+y}
+ then :
+@@ -3182,9 +3301,9 @@ if (
+   # if, for instance, CONFIG_SHELL is bash and it inherits a
+   # broken ls alias from the environment.  This has actually
+   # happened.  Such a system could not be considered "sane".
+-  printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  printf '%s\n' ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "ls -t produces unexpected output.
+ Make sure there is not a broken ls alias in your environment.
+ See 'config.log' for more details" "$LINENO" 5; }
+@@ -3265,12 +3384,12 @@ rm -f conftest.ts?
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5
+-printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5
++printf '%s\n' "$am_cv_filesystem_timestamp_resolution" >&6; }
+ # This check should not be cached, as it may vary across builds of
+ # different projects.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+ printf %s "checking whether build environment is sane... " >&6; }
+ # Reject unsafe characters in $srcdir or the absolute working directory
+ # name.  Accept space and tab only in the latter.
+@@ -3278,14 +3397,14 @@ am_lf='
+ '
+ case `pwd` in
+   *[\\\"\#\$\&\'\`$am_lf]*)
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+     as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+ esac
+ case $srcdir in
+   *[\\\"\#\$\&\'\`$am_lf\ \   ]*)
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+     as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+ esac
+@@ -3315,8 +3434,8 @@ for am_try in 1 2; do
+   am_has_slept=yes
+ done
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5
+-printf "%s\n" "$am_build_env_is_sane" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5
++printf '%s\n' "$am_build_env_is_sane" >&6; }
+ if test "$am_build_env_is_sane" = no; then
+   as_fn_error $? "newly created file is older than distributed files!
+ Check your system clock" "$LINENO" 5
+@@ -3345,7 +3464,7 @@ test "$program_suffix" != NONE &&
+ # Double any \ or $.
+ # By default was 's,x,x', remove it if useless.
+ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+-program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
++program_transform_name=`printf '%s\n' "$program_transform_name" | sed "$ac_script"`
+ # Expand $ac_aux_dir to an absolute path.
+@@ -3360,8 +3479,8 @@ if eval "$MISSING --is-lightweight"; the
+   am_missing_run="$MISSING "
+ else
+   am_missing_run=
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+-printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
++printf '%s\n' "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+ fi
+ if test x"${install_sh+set}" != xset; then
+@@ -3381,7 +3500,7 @@ if test "$cross_compiling" != no; then
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}strip; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_STRIP+y}
+ then :
+@@ -3402,7 +3521,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -3414,11 +3533,11 @@ esac
+ fi
+ STRIP=$ac_cv_prog_STRIP
+ if test -n "$STRIP"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+-printf "%s\n" "$STRIP" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
++printf '%s\n' "$STRIP" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -3427,7 +3546,7 @@ if test -z "$ac_cv_prog_STRIP"; then
+   ac_ct_STRIP=$STRIP
+   # Extract the first word of "strip", so it can be a program name with args.
+ set dummy strip; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_STRIP+y}
+ then :
+@@ -3448,7 +3567,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_STRIP="strip"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -3460,11 +3579,11 @@ esac
+ fi
+ ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+ if test -n "$ac_ct_STRIP"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+-printf "%s\n" "$ac_ct_STRIP" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
++printf '%s\n' "$ac_ct_STRIP" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_STRIP" = x; then
+@@ -3472,8 +3591,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     STRIP=$ac_ct_STRIP
+@@ -3486,7 +3605,7 @@ fi
+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
+ printf %s "checking for a race-free mkdir -p... " >&6; }
+ if test -z "$MKDIR_P"; then
+   if test ${ac_cv_path_mkdir+y}
+@@ -3529,14 +3648,14 @@ fi
+     MKDIR_P='mkdir -p'
+   fi
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+-printf "%s\n" "$MKDIR_P" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
++printf '%s\n' "$MKDIR_P" >&6; }
+-for ac_prog in gawk mawk nawk awk
++for ac_prog in gawk mawk nawk awk 'busybox awk'
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_AWK+y}
+ then :
+@@ -3557,7 +3676,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AWK="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -3569,21 +3688,21 @@ esac
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+-printf "%s\n" "$AWK" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
++printf '%s\n' "$AWK" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   test -n "$AWK" && break
+ done
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+ printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+ set x ${MAKE-make}
+-ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
++ac_make=`printf '%s\n' "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+ if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+ then :
+   printf %s "(cached) " >&6
+@@ -3591,7 +3710,7 @@ else case e in #(
+   e) cat >conftest.make <<\_ACEOF
+ SHELL = /bin/sh
+ all:
+-      @echo '@@@%%%=$(MAKE)=@@@%%%'
++      @printf '%s\n' '@@@%%%=$(MAKE)=@@@%%%'
+ _ACEOF
+ # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+ case `${MAKE-make} -f conftest.make 2>/dev/null` in
+@@ -3604,12 +3723,12 @@ rm -f conftest.make ;;
+ esac
+ fi
+ if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+   SET_MAKE=
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -3630,13 +3749,13 @@ then :
+ fi
+ am_make=${MAKE-make}
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+ printf %s "checking whether $am_make supports nested variables... " >&6; }
+ if test ${am_cv_make_support_nested_variables+y}
+ then :
+   printf %s "(cached) " >&6
+ else case e in #(
+-  e) if printf "%s\n" 'TRUE=$(BAR$(V))
++  e) if printf '%s\n' 'TRUE=$(BAR$(V))
+ BAR0=false
+ BAR1=true
+ V=1
+@@ -3649,8 +3768,8 @@ else
+ fi ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+-printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
++printf '%s\n' "$am_cv_make_support_nested_variables" >&6; }
+ AM_BACKSLASH='\'
+ am__rm_f_notfound=
+@@ -3663,7 +3782,7 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5
+ printf %s "checking xargs -n works... " >&6; }
+ if test ${am_cv_xargs_n_works+y}
+ then :
+@@ -3679,8 +3798,8 @@ esac
+ fi ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5
+-printf "%s\n" "$am_cv_xargs_n_works" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5
++printf '%s\n' "$am_cv_xargs_n_works" >&6; }
+ if test "$am_cv_xargs_n_works" = yes
+ then :
+   am__xargs_n='xargs -n'
+@@ -3715,10 +3834,10 @@ fi
+  VERSION='2.7.1'
+-printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
++printf '%s\n' "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
+-printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
++printf '%s\n' "#define VERSION \"$VERSION\"" >>confdefs.h
+ # Some tools Automake needs.
+@@ -3754,7 +3873,7 @@ _am_tools='gnutar  pax cpio none'
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5
+ printf %s "checking how to create a pax tar archive... " >&6; }
+   # Go ahead even if we have the value already cached.  We do so because we
+@@ -3838,8 +3957,8 @@ else case e in #(
+ esac
+ fi
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5
+-printf "%s\n" "$am_cv_prog_tar_pax" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5
++printf '%s\n' "$am_cv_prog_tar_pax" >&6; }
+@@ -3871,7 +3990,7 @@ fi
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_EMACS+y}
+ then :
+@@ -3892,7 +4011,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_EMACS="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -3904,11 +4023,11 @@ esac
+ fi
+ EMACS=$ac_cv_prog_EMACS
+ if test -n "$EMACS"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5
+-printf "%s\n" "$EMACS" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5
++printf '%s\n' "$EMACS" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -3923,13 +4042,13 @@ test -n "$EMACS" || EMACS="no"
+ if test ${with_lispdir+y}
+ then :
+   withval=$with_lispdir;  lispdir="$withval"
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
+ printf %s "checking where .elc files should go... " >&6; }
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5
+-printf "%s\n" "$lispdir" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5
++printf '%s\n' "$lispdir" >&6; }
+ else case e in #(
+   e)
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5
+ printf %s "checking where .elc files should go... " >&6; }
+ if test ${am_cv_lispdir+y}
+ then :
+@@ -3943,10 +4062,10 @@ else case e in #(
+   #  which is non-obvious for non-emacs users.
+   # Redirecting /dev/null should help a bit; pity we can't detect "broken"
+   #  emacsen earlier and avoid running this altogether.
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' </dev/null >conftest.out"; } >&5
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' </dev/null >conftest.out"; } >&5
+   ($EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out) 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+       am_cv_lispdir=`sed -n \
+        -e 's,/$,,' \
+@@ -3960,8 +4079,8 @@ else case e in #(
+    ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5
+-printf "%s\n" "$am_cv_lispdir" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5
++printf '%s\n' "$am_cv_lispdir" >&6; }
+   lispdir="$am_cv_lispdir"
+  ;;
+ esac
+@@ -3990,7 +4109,7 @@ for ac_prog in gawk nawk awk
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_AWK+y}
+ then :
+@@ -4011,7 +4130,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AWK="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4023,11 +4142,11 @@ esac
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+-printf "%s\n" "$AWK" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
++printf '%s\n' "$AWK" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4041,7 +4160,7 @@ done
+ $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+   as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+ printf %s "checking build system type... " >&6; }
+ if test ${ac_cv_build+y}
+ then :
+@@ -4057,8 +4176,8 @@ ac_cv_build=`$SHELL "${ac_aux_dir}config
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+-printf "%s\n" "$ac_cv_build" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
++printf '%s\n' "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+ *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+@@ -4074,10 +4193,10 @@ shift; shift
+ # except with old shells:
+ build_os=$*
+ IFS=$ac_save_IFS
+-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
++case $build_os in *\ *) build_os=`printf '%s\n' "$build_os" | sed 's/ /-/g'`;; esac
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+ printf %s "checking host system type... " >&6; }
+ if test ${ac_cv_host+y}
+ then :
+@@ -4092,8 +4211,8 @@ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+-printf "%s\n" "$ac_cv_host" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
++printf '%s\n' "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+ *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+@@ -4109,7 +4228,7 @@ shift; shift
+ # except with old shells:
+ host_os=$*
+ IFS=$ac_save_IFS
+-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
++case $host_os in *\ *) host_os=`printf '%s\n' "$host_os" | sed 's/ /-/g'`;; esac
+ canonical=$host
+@@ -4132,8 +4251,8 @@ cat >>confdefs.h <<_ACEOF
+ _ACEOF
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: host=$host" >&5
+-printf "%s\n" "host=$host" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: host=$host" >&5
++printf '%s\n' "host=$host" >&6; }
+ #use=unknown
+ case $canonical in
+@@ -4204,7 +4323,7 @@ fi
+ if test "$libboot" = "yes" ; then
+-printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h
++printf '%s\n' "#define USE_LIBBOOT 1" >>confdefs.h
+ fi
+@@ -4215,8 +4334,8 @@ then :
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: use=$use" >&5
+-printf "%s\n" "use=$use" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: use=$use" >&5
++printf '%s\n' "use=$use" >&6; }
+ def_pic="no";
+ case $use in
+@@ -4239,7 +4358,7 @@ esac
+ if test ${enable_widecons+y}
+ then :
+   enableval=$enable_widecons; if test "$enableval" = "yes" ; then
+-printf "%s\n" "#define WIDE_CONS 1" >>confdefs.h
++printf '%s\n' "#define WIDE_CONS 1" >>confdefs.h
+  fi
+ fi
+@@ -4249,13 +4368,13 @@ if test ${enable_safecdr+y}
+ then :
+   enableval=$enable_safecdr; if test "$enableval" = "yes" ; then
+-printf "%s\n" "#define USE_SAFE_CDR 1" >>confdefs.h
++printf '%s\n' "#define USE_SAFE_CDR 1" >>confdefs.h
+                  # Check whether --enable-safecdrdbg was given.
+ if test ${enable_safecdrdbg+y}
+ then :
+   enableval=$enable_safecdrdbg; if test "$enableval" = "yes" ; then
+-printf "%s\n" "#define DEBUG_SAFE_CDR 1" >>confdefs.h
++printf '%s\n' "#define DEBUG_SAFE_CDR 1" >>confdefs.h
+  fi
+ fi
+@@ -4275,7 +4394,7 @@ fi
+ if test ${enable_vssize+y}
+ then :
+   enableval=$enable_vssize;
+-printf "%s\n" "#define VSSIZE $enableval" >>confdefs.h
++printf '%s\n' "#define VSSIZE $enableval" >>confdefs.h
+ fi
+@@ -4283,7 +4402,7 @@ fi
+ if test ${enable_bdssize+y}
+ then :
+   enableval=$enable_bdssize;
+-printf "%s\n" "#define BDSSIZE $enableval" >>confdefs.h
++printf '%s\n' "#define BDSSIZE $enableval" >>confdefs.h
+ fi
+@@ -4291,7 +4410,7 @@ fi
+ if test ${enable_ihssize+y}
+ then :
+   enableval=$enable_ihssize;
+-printf "%s\n" "#define IHSSIZE $enableval" >>confdefs.h
++printf '%s\n' "#define IHSSIZE $enableval" >>confdefs.h
+ fi
+@@ -4299,7 +4418,7 @@ fi
+ if test ${enable_frssize+y}
+ then :
+   enableval=$enable_frssize;
+-printf "%s\n" "#define FRSSIZE $enableval" >>confdefs.h
++printf '%s\n' "#define FRSSIZE $enableval" >>confdefs.h
+ fi
+@@ -4376,11 +4495,14 @@ fi
++
++
++
+ DEPDIR="${am__leading_dot}deps"
+ ac_config_commands="$ac_config_commands depfiles"
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+ printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
+ cat > confinc.mk << 'END'
+ am__doit:
+@@ -4417,8 +4539,8 @@ esac
+   fi
+ done
+ rm -f confinc.* confmf.*
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+-printf "%s\n" "${_am_result}" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
++printf '%s\n' "${_am_result}" >&6; }
+ # Check whether --enable-dependency-tracking was given.
+ if test ${enable_dependency_tracking+y}
+@@ -4448,7 +4570,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -4469,7 +4591,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4481,11 +4603,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4494,7 +4616,7 @@ if test -z "$ac_cv_prog_CC"; then
+   ac_ct_CC=$CC
+   # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -4515,7 +4637,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="gcc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4527,11 +4649,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_CC" = x; then
+@@ -4539,8 +4661,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -4553,7 +4675,7 @@ if test -z "$CC"; then
+           if test -n "$ac_tool_prefix"; then
+     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -4574,7 +4696,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}cc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4586,11 +4708,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4599,7 +4721,7 @@ fi
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -4625,7 +4747,7 @@ do
+        continue
+      fi
+     ac_cv_prog_CC="cc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4649,11 +4771,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4664,7 +4786,7 @@ if test -z "$CC"; then
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -4685,7 +4807,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4697,11 +4819,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4714,7 +4836,7 @@ if test -z "$CC"; then
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -4735,7 +4857,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4747,11 +4869,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4763,8 +4885,8 @@ done
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -4776,7 +4898,7 @@ if test -z "$CC"; then
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}clang; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -4797,7 +4919,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}clang"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4809,11 +4931,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -4822,7 +4944,7 @@ if test -z "$ac_cv_prog_CC"; then
+   ac_ct_CC=$CC
+   # Extract the first word of "clang", so it can be a program name with args.
+ set dummy clang; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -4843,7 +4965,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="clang"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -4855,11 +4977,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_CC" = x; then
+@@ -4867,8 +4989,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -4880,13 +5002,13 @@ fi
+ fi
+-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "no acceptable C compiler found in \$PATH
+ See 'config.log' for more details" "$LINENO" 5; }
+ # Provide some information about the compiler.
+-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
++printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+ set X $ac_compile
+ ac_compiler=$2
+ for ac_option in --version -v -V -qversion -version; do
+@@ -4896,7 +5018,7 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+@@ -4906,7 +5028,7 @@ printf "%s\n" "$ac_try_echo"; } >&5
+     cat conftest.er1 >&5
+   fi
+   rm -f conftest.er1 conftest.err
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+ done
+@@ -4926,9 +5048,9 @@ ac_clean_files="$ac_clean_files a.out a.
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+ printf %s "checking whether the C compiler works... " >&6; }
+-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
++ac_link_default=`printf '%s\n' "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+ # The possible output files:
+ ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+@@ -4949,10 +5071,10 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_link_default") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+ then :
+   # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
+@@ -4993,29 +5115,29 @@ esac
+ fi
+ if test -z "$ac_file"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+-printf "%s\n" "$as_me: failed program was:" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
++printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error 77 "C compiler cannot create executables
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; } ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+ printf %s "checking for C compiler default output file name... " >&6; }
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+-printf "%s\n" "$ac_file" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
++printf '%s\n' "$ac_file" >&6; }
+ ac_exeext=$ac_cv_exeext
+ rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ ac_clean_files=$ac_clean_files_save
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+ printf %s "checking for suffix of executables... " >&6; }
+ if { { ac_try="$ac_link"
+ case "(($ac_try" in
+@@ -5023,10 +5145,10 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+ then :
+   # If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
+@@ -5043,15 +5165,15 @@ for ac_file in conftest.exe conftest con
+   esac
+ done
+ else case e in #(
+-  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+ See 'config.log' for more details" "$LINENO" 5; } ;;
+ esac
+ fi
+ rm -f conftest conftest$ac_cv_exeext
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+-printf "%s\n" "$ac_cv_exeext" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
++printf '%s\n' "$ac_cv_exeext" >&6; }
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+@@ -5074,7 +5196,7 @@ _ACEOF
+ ac_clean_files="$ac_clean_files conftest.out"
+ # Check that the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+ printf %s "checking whether we are cross compiling... " >&6; }
+ if test "$cross_compiling" != yes; then
+   { { ac_try="$ac_link"
+@@ -5083,10 +5205,10 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+   if { ac_try='./conftest$ac_cv_exeext'
+   { { case "(($ac_try" in
+@@ -5094,31 +5216,31 @@ printf "%s\n" "$ac_try_echo"; } >&5
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; }; then
+     cross_compiling=no
+   else
+     if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+     else
+-      { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++      { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error 77 "cannot run C compiled programs.
+ If you meant to cross compile, use '--host'.
+ See 'config.log' for more details" "$LINENO" 5; }
+     fi
+   fi
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+-printf "%s\n" "$cross_compiling" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
++printf '%s\n' "$cross_compiling" >&6; }
+ rm -f conftest.$ac_ext conftest$ac_cv_exeext \
+   conftest.o conftest.obj conftest.out
+ ac_clean_files=$ac_clean_files_save
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+ printf %s "checking for suffix of object files... " >&6; }
+ if test ${ac_cv_objext+y}
+ then :
+@@ -5142,10 +5264,10 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_compile") 2>&5
+   ac_status=$?
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+ then :
+   for ac_file in conftest.o conftest.obj conftest.*; do
+@@ -5157,11 +5279,11 @@ then :
+   esac
+ done
+ else case e in #(
+-  e) printf "%s\n" "$as_me: failed program was:" >&5
++  e) printf '%s\n' "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot compute suffix of object files: cannot compile
+ See 'config.log' for more details" "$LINENO" 5; } ;;
+ esac
+@@ -5169,11 +5291,11 @@ fi
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+-printf "%s\n" "$ac_cv_objext" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
++printf '%s\n' "$ac_cv_objext" >&6; }
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+ printf %s "checking whether the compiler supports GNU C... " >&6; }
+ if test ${ac_cv_c_compiler_gnu+y}
+ then :
+@@ -5205,8 +5327,8 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
++printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; }
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test $ac_compiler_gnu = yes; then
+@@ -5216,7 +5338,7 @@ else
+ fi
+ ac_test_CFLAGS=${CFLAGS+y}
+ ac_save_CFLAGS=$CFLAGS
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+ printf %s "checking whether $CC accepts -g... " >&6; }
+ if test ${ac_cv_prog_cc_g+y}
+ then :
+@@ -5284,8 +5406,8 @@ rm -f core conftest.err conftest.$ac_obj
+    ac_c_werror_flag=$ac_save_c_werror_flag ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
++printf '%s\n' "$ac_cv_prog_cc_g" >&6; }
+ if test $ac_test_CFLAGS; then
+   CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+@@ -5304,7 +5426,56 @@ fi
+ ac_prog_cc_stdc=no
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5
++printf %s "checking for $CC option to enable C23 features... " >&6; }
++if test ${ac_cv_prog_cc_c23+y}
++then :
++  printf %s "(cached) " >&6
++else case e in #(
++  e) ac_cv_prog_cc_c23=no
++ac_save_CC=$CC
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++$ac_c_conftest_c23_program
++_ACEOF
++for ac_arg in '' -std=gnu23
++do
++  CC="$ac_save_CC $ac_arg"
++  if ac_fn_c_try_compile "$LINENO"
++then :
++  ac_cv_prog_cc_c23=$ac_arg
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam
++  test "x$ac_cv_prog_cc_c23" != "xno" && break
++done
++rm -f conftest.$ac_ext
++CC=$ac_save_CC ;;
++esac
++fi
++
++if test "x$ac_cv_prog_cc_c23" = xno
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
++else case e in #(
++  e) if test "x$ac_cv_prog_cc_c23" = x
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
++else case e in #(
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5
++printf '%s\n' "$ac_cv_prog_cc_c23" >&6; }
++     CC="$CC $ac_cv_prog_cc_c23" ;;
++esac
++fi
++  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23
++  ac_prog_cc_stdc=c23 ;;
++esac
++fi
++fi
++if test x$ac_prog_cc_stdc = xno
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+ printf %s "checking for $CC option to enable C11 features... " >&6; }
+ if test ${ac_cv_prog_cc_c11+y}
+ then :
+@@ -5316,7 +5487,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
+ /* end confdefs.h.  */
+ $ac_c_conftest_c11_program
+ _ACEOF
+-for ac_arg in '' -std=gnu11
++for ac_arg in '' -std=gnu11 -std:c11
+ do
+   CC="$ac_save_CC $ac_arg"
+   if ac_fn_c_try_compile "$LINENO"
+@@ -5333,16 +5504,16 @@ fi
+ if test "x$ac_cv_prog_cc_c11" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c11" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
++printf '%s\n' "$ac_cv_prog_cc_c11" >&6; }
+      CC="$CC $ac_cv_prog_cc_c11" ;;
+ esac
+ fi
+@@ -5353,7 +5524,7 @@ fi
+ fi
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+ printf %s "checking for $CC option to enable C99 features... " >&6; }
+ if test ${ac_cv_prog_cc_c99+y}
+ then :
+@@ -5382,16 +5553,16 @@ fi
+ if test "x$ac_cv_prog_cc_c99" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c99" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
++printf '%s\n' "$ac_cv_prog_cc_c99" >&6; }
+      CC="$CC $ac_cv_prog_cc_c99" ;;
+ esac
+ fi
+@@ -5402,7 +5573,7 @@ fi
+ fi
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+ printf %s "checking for $CC option to enable C89 features... " >&6; }
+ if test ${ac_cv_prog_cc_c89+y}
+ then :
+@@ -5431,16 +5602,16 @@ fi
+ if test "x$ac_cv_prog_cc_c89" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c89" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
++printf '%s\n' "$ac_cv_prog_cc_c89" >&6; }
+      CC="$CC $ac_cv_prog_cc_c89" ;;
+ esac
+ fi
+@@ -5462,7 +5633,7 @@ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+ printf %s "checking whether $CC understands -c and -o together... " >&6; }
+ if test ${am_cv_prog_cc_c_o+y}
+ then :
+@@ -5504,8 +5675,8 @@ _ACEOF
+   unset am_i ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
++printf '%s\n' "$am_cv_prog_cc_c_o" >&6; }
+ if test "$am_cv_prog_cc_c_o" != yes; then
+    # Losing compiler, so override with the script.
+    # FIXME: It is wrong to rewrite CC.
+@@ -5523,7 +5694,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ depcc="$CC"   am_compiler_list=
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+ printf %s "checking dependency style of $depcc... " >&6; }
+ if test ${am_cv_CC_dependencies_compiler_type+y}
+ then :
+@@ -5636,8 +5807,8 @@ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+-printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
++printf '%s\n' "$am_cv_CC_dependencies_compiler_type" >&6; }
+ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+  if
+@@ -5658,7 +5829,7 @@ do
+   if test $ac_cache; then
+     ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+     if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+-      printf "%s\n" "#define $ac_item 1" >> confdefs.h
++      printf '%s\n' "#define $ac_item 1" >> confdefs.h
+     fi
+     ac_header= ac_cache=
+   elif test $ac_header; then
+@@ -5678,7 +5849,7 @@ done
+ if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+ then :
+-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
++printf '%s\n' "#define STDC_HEADERS 1" >>confdefs.h
+ fi
+@@ -5687,7 +5858,7 @@ fi
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+ printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+ if test ${ac_cv_safe_to_define___extensions__+y}
+ then :
+@@ -5716,10 +5887,10 @@ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+-printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
++printf '%s\n' "$ac_cv_safe_to_define___extensions__" >&6; }
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+ printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+ if test ${ac_cv_should_define__xopen_source+y}
+ then :
+@@ -5770,49 +5941,51 @@ rm -f core conftest.err conftest.$ac_obj
+ fi ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+-printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
++printf '%s\n' "$ac_cv_should_define__xopen_source" >&6; }
++
++  printf '%s\n' "#define _ALL_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _COSMO_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _GNU_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
++  printf '%s\n' "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
+-  printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _NETBSD_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _OPENBSD_SOURCE 1" >>confdefs.h
+-  printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
++  printf '%s\n' "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
+-  printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
++  printf '%s\n' "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
+-  printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
++  printf '%s\n' "#define _TANDEM_SOURCE 1" >>confdefs.h
+   if test $ac_cv_header_minix_config_h = yes
+ then :
+   MINIX=yes
+-    printf "%s\n" "#define _MINIX 1" >>confdefs.h
++    printf '%s\n' "#define _MINIX 1" >>confdefs.h
+-    printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
++    printf '%s\n' "#define _POSIX_SOURCE 1" >>confdefs.h
+-    printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
++    printf '%s\n' "#define _POSIX_1_SOURCE 2" >>confdefs.h
+ else case e in #(
+   e) MINIX= ;;
+@@ -5820,19 +5993,19 @@ esac
+ fi
+   if test $ac_cv_safe_to_define___extensions__ = yes
+ then :
+-  printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
++  printf '%s\n' "#define __EXTENSIONS__ 1" >>confdefs.h
+ fi
+   if test $ac_cv_should_define__xopen_source = yes
+ then :
+-  printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
++  printf '%s\n' "#define _XOPEN_SOURCE 500" >>confdefs.h
+ fi
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_RANLIB+y}
+ then :
+@@ -5853,7 +6026,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -5865,11 +6038,11 @@ esac
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+-printf "%s\n" "$RANLIB" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
++printf '%s\n' "$RANLIB" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -5878,7 +6051,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
+   ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_RANLIB+y}
+ then :
+@@ -5899,7 +6072,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_RANLIB="ranlib"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -5911,11 +6084,11 @@ esac
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+-printf "%s\n" "$ac_ct_RANLIB" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
++printf '%s\n' "$ac_ct_RANLIB" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_RANLIB" = x; then
+@@ -5923,8 +6096,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     RANLIB=$ac_ct_RANLIB
+@@ -5941,7 +6114,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -5962,7 +6135,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -5974,11 +6147,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -5987,7 +6160,7 @@ if test -z "$ac_cv_prog_CC"; then
+   ac_ct_CC=$CC
+   # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -6008,7 +6181,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="gcc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6020,11 +6193,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_CC" = x; then
+@@ -6032,8 +6205,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -6046,7 +6219,7 @@ if test -z "$CC"; then
+           if test -n "$ac_tool_prefix"; then
+     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -6067,7 +6240,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}cc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6079,11 +6252,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -6092,7 +6265,7 @@ fi
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -6118,7 +6291,7 @@ do
+        continue
+      fi
+     ac_cv_prog_CC="cc"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6142,11 +6315,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -6157,7 +6330,7 @@ if test -z "$CC"; then
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -6178,7 +6351,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6190,11 +6363,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -6207,7 +6380,7 @@ if test -z "$CC"; then
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -6228,7 +6401,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6240,11 +6413,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -6256,8 +6429,8 @@ done
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -6269,7 +6442,7 @@ if test -z "$CC"; then
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}clang; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_CC+y}
+ then :
+@@ -6290,7 +6463,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_CC="${ac_tool_prefix}clang"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6302,11 +6475,11 @@ esac
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+-printf "%s\n" "$CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
++printf '%s\n' "$CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -6315,7 +6488,7 @@ if test -z "$ac_cv_prog_CC"; then
+   ac_ct_CC=$CC
+   # Extract the first word of "clang", so it can be a program name with args.
+ set dummy clang; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_ac_ct_CC+y}
+ then :
+@@ -6336,7 +6509,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_CC="clang"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -6348,11 +6521,11 @@ esac
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+-printf "%s\n" "$ac_ct_CC" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
++printf '%s\n' "$ac_ct_CC" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+   if test "x$ac_ct_CC" = x; then
+@@ -6360,8 +6533,8 @@ fi
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+@@ -6373,13 +6546,13 @@ fi
+ fi
+-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "no acceptable C compiler found in \$PATH
+ See 'config.log' for more details" "$LINENO" 5; }
+ # Provide some information about the compiler.
+-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
++printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+ set X $ac_compile
+ ac_compiler=$2
+ for ac_option in --version -v -V -qversion -version; do
+@@ -6389,7 +6562,7 @@ case "(($ac_try" in
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+-printf "%s\n" "$ac_try_echo"; } >&5
++printf '%s\n' "$ac_try_echo"; } >&5
+   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+@@ -6399,11 +6572,11 @@ printf "%s\n" "$ac_try_echo"; } >&5
+     cat conftest.er1 >&5
+   fi
+   rm -f conftest.er1 conftest.err
+-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }
+ done
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+ printf %s "checking whether the compiler supports GNU C... " >&6; }
+ if test ${ac_cv_c_compiler_gnu+y}
+ then :
+@@ -6435,8 +6608,8 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
++printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; }
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test $ac_compiler_gnu = yes; then
+@@ -6446,7 +6619,7 @@ else
+ fi
+ ac_test_CFLAGS=${CFLAGS+y}
+ ac_save_CFLAGS=$CFLAGS
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+ printf %s "checking whether $CC accepts -g... " >&6; }
+ if test ${ac_cv_prog_cc_g+y}
+ then :
+@@ -6514,8 +6687,8 @@ rm -f core conftest.err conftest.$ac_obj
+    ac_c_werror_flag=$ac_save_c_werror_flag ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
++printf '%s\n' "$ac_cv_prog_cc_g" >&6; }
+ if test $ac_test_CFLAGS; then
+   CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+@@ -6534,7 +6707,56 @@ fi
+ ac_prog_cc_stdc=no
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5
++printf %s "checking for $CC option to enable C23 features... " >&6; }
++if test ${ac_cv_prog_cc_c23+y}
++then :
++  printf %s "(cached) " >&6
++else case e in #(
++  e) ac_cv_prog_cc_c23=no
++ac_save_CC=$CC
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++$ac_c_conftest_c23_program
++_ACEOF
++for ac_arg in '' -std=gnu23
++do
++  CC="$ac_save_CC $ac_arg"
++  if ac_fn_c_try_compile "$LINENO"
++then :
++  ac_cv_prog_cc_c23=$ac_arg
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam
++  test "x$ac_cv_prog_cc_c23" != "xno" && break
++done
++rm -f conftest.$ac_ext
++CC=$ac_save_CC ;;
++esac
++fi
++
++if test "x$ac_cv_prog_cc_c23" = xno
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
++else case e in #(
++  e) if test "x$ac_cv_prog_cc_c23" = x
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
++else case e in #(
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5
++printf '%s\n' "$ac_cv_prog_cc_c23" >&6; }
++     CC="$CC $ac_cv_prog_cc_c23" ;;
++esac
++fi
++  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23
++  ac_prog_cc_stdc=c23 ;;
++esac
++fi
++fi
++if test x$ac_prog_cc_stdc = xno
++then :
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+ printf %s "checking for $CC option to enable C11 features... " >&6; }
+ if test ${ac_cv_prog_cc_c11+y}
+ then :
+@@ -6546,7 +6768,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
+ /* end confdefs.h.  */
+ $ac_c_conftest_c11_program
+ _ACEOF
+-for ac_arg in '' -std=gnu11
++for ac_arg in '' -std=gnu11 -std:c11
+ do
+   CC="$ac_save_CC $ac_arg"
+   if ac_fn_c_try_compile "$LINENO"
+@@ -6563,16 +6785,16 @@ fi
+ if test "x$ac_cv_prog_cc_c11" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c11" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
++printf '%s\n' "$ac_cv_prog_cc_c11" >&6; }
+      CC="$CC $ac_cv_prog_cc_c11" ;;
+ esac
+ fi
+@@ -6583,7 +6805,7 @@ fi
+ fi
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+ printf %s "checking for $CC option to enable C99 features... " >&6; }
+ if test ${ac_cv_prog_cc_c99+y}
+ then :
+@@ -6612,16 +6834,16 @@ fi
+ if test "x$ac_cv_prog_cc_c99" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c99" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
++printf '%s\n' "$ac_cv_prog_cc_c99" >&6; }
+      CC="$CC $ac_cv_prog_cc_c99" ;;
+ esac
+ fi
+@@ -6632,7 +6854,7 @@ fi
+ fi
+ if test x$ac_prog_cc_stdc = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+ printf %s "checking for $CC option to enable C89 features... " >&6; }
+ if test ${ac_cv_prog_cc_c89+y}
+ then :
+@@ -6661,16 +6883,16 @@ fi
+ if test "x$ac_cv_prog_cc_c89" = xno
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+-printf "%s\n" "unsupported" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
++printf '%s\n' "unsupported" >&6; }
+ else case e in #(
+   e) if test "x$ac_cv_prog_cc_c89" = x
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+-printf "%s\n" "none needed" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
++printf '%s\n' "none needed" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
++printf '%s\n' "$ac_cv_prog_cc_c89" >&6; }
+      CC="$CC $ac_cv_prog_cc_c89" ;;
+ esac
+ fi
+@@ -6692,7 +6914,7 @@ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+ printf %s "checking whether $CC understands -c and -o together... " >&6; }
+ if test ${am_cv_prog_cc_c_o+y}
+ then :
+@@ -6734,8 +6956,8 @@ _ACEOF
+   unset am_i ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
++printf '%s\n' "$am_cv_prog_cc_c_o" >&6; }
+ if test "$am_cv_prog_cc_c_o" != yes; then
+    # Losing compiler, so override with the script.
+    # FIXME: It is wrong to rewrite CC.
+@@ -6753,7 +6975,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ depcc="$CC"   am_compiler_list=
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+ printf %s "checking dependency style of $depcc... " >&6; }
+ if test ${am_cv_CC_dependencies_compiler_type+y}
+ then :
+@@ -6866,8 +7088,8 @@ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+-printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
++printf '%s\n' "$am_cv_CC_dependencies_compiler_type" >&6; }
+ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+  if
+@@ -6886,7 +7108,7 @@ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+ printf %s "checking how to run the C preprocessor... " >&6; }
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+@@ -6957,8 +7179,8 @@ fi
+ else
+   ac_cv_prog_CPP=$CPP
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+-printf "%s\n" "$CPP" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
++printf '%s\n' "$CPP" >&6; }
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+ do
+@@ -7006,8 +7228,8 @@ if $ac_preproc_ok
+ then :
+ else case e in #(
+-  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+ See 'config.log' for more details" "$LINENO" 5; } ;;
+ esac
+@@ -7029,14 +7251,14 @@ fi
+ add_arg_to_cppflags() {
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5
+ printf %s "checking for CPPFLAG $1... " >&6; }
+     CPPFLAGS_ORI=$CPPFLAGS
+     CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`"
+     if test "$cross_compiling" = yes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ else case e in #(
+   e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -7051,11 +7273,11 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  CPPFLAGS="$CPPFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; };return 0
++  CPPFLAGS="$CPPFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; };return 0
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -7069,8 +7291,8 @@ fi
+ }
+ assert_arg_to_cppflags() {
+-    if ! add_arg_to_cppflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5
+-printf "%s\n" "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi
++    if ! add_arg_to_cppflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5
++printf '%s\n' "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi
+     return 0
+ }
+@@ -7084,14 +7306,14 @@ add_args_to_cppflags() {
+ add_arg_to_cflags() {
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5
+ printf %s "checking for CFLAG $1... " >&6; }
+     CFLAGS_ORI=$CFLAGS
+     CFLAGS="$CFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`"
+     if test "$cross_compiling" = yes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ else case e in #(
+   e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -7106,11 +7328,11 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  CFLAGS="$CFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; };return 0
++  CFLAGS="$CFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; };return 0
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -7124,8 +7346,8 @@ fi
+ }
+ assert_arg_to_cflags() {
+-    if ! add_arg_to_cflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CFLAGS" >&5
+-printf "%s\n" "cannot add $1 to CFLAGS" >&6; }; exit 1 ; fi
++    if ! add_arg_to_cflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CFLAGS" >&5
++printf '%s\n' "cannot add $1 to CFLAGS" >&6; }; exit 1 ; fi
+     return 0
+ }
+@@ -7139,14 +7361,14 @@ add_args_to_cflags() {
+ add_arg_to_ldflags() {
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LDFLAG $1" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for LDFLAG $1" >&5
+ printf %s "checking for LDFLAG $1... " >&6; }
+     LDFLAGS_ORI=$LDFLAGS
+     LDFLAGS="$LDFLAGS -Werror $1"
+     if test "$cross_compiling" = yes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ else case e in #(
+   e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -7161,11 +7383,11 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  LDFLAGS="$LDFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; };return 0
++  LDFLAGS="$LDFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; };return 0
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -7179,8 +7401,8 @@ fi
+ }
+ assert_arg_to_ldflags() {
+-    if ! add_arg_to_ldflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to LDFLAGS" >&5
+-printf "%s\n" "cannot add $1 to LDFLAGS" >&6; }; exit 1 ; fi
++    if ! add_arg_to_ldflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to LDFLAGS" >&5
++printf '%s\n' "cannot add $1 to LDFLAGS" >&6; }; exit 1 ; fi
+     return 0
+ }
+@@ -7199,8 +7421,8 @@ remove_arg_from_ldflags() {
+       if ! test "$i" = "$1" ; then
+                   NEW_LDFLAGS="$NEW_LDFLAGS $i"
+       else
+-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: removing $1 from LDFLAGS" >&5
+-printf "%s\n" "removing $1 from LDFLAGS" >&6; }
++            { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: removing $1 from LDFLAGS" >&5
++printf '%s\n' "removing $1 from LDFLAGS" >&6; }
+       fi
+     done
+     LDFLAGS=$NEW_LDFLAGS
+@@ -7220,7 +7442,7 @@ add_args_to_cflags  -fsigned-char -pipe
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5
+ printf %s "checking for inline semantics... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -7234,8 +7456,8 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+   if `nm conftest.o |grep foo |awk '{if (NF==3) exit(-1)}'` ; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: new" >&5
+-printf "%s\n" "new" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: new" >&5
++printf '%s\n' "new" >&6; }
+      else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -7249,10 +7471,10 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+   if `nm conftest.o |grep foo |awk '{if (NF==3) exit(-1)}'` ; then
+-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: old" >&5
+-printf "%s\n" "old" >&6; }
++              { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: old" >&5
++printf '%s\n' "old" >&6; }
+-printf "%s\n" "#define OLD_INLINE 1" >>confdefs.h
++printf '%s\n' "#define OLD_INLINE 1" >>confdefs.h
+            else
+               as_fn_error $? "need working inline semantics" "$LINENO" 5
+@@ -7338,7 +7560,7 @@ esac
+ fi
+-printf "%s\n" "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h
++printf '%s\n' "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h
+       #Support libboot option
+@@ -7352,7 +7574,7 @@ esac
+ fi
+-printf "%s\n" "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h
++printf '%s\n' "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h
+       # Check whether --enable-saved_image_span was given.
+@@ -7365,7 +7587,7 @@ esac
+ fi
+-printf "%s\n" "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h
++printf '%s\n' "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h
+       ;;
+ esac
+@@ -7374,7 +7596,7 @@ if test "$enable_static" = "yes" ; then
+     assert_arg_to_ldflags -static
+     assert_arg_to_ldflags -Wl,-zmuldefs
+-printf "%s\n" "#define STATIC_LINKING 1" >>confdefs.h
++printf '%s\n' "#define STATIC_LINKING 1" >>confdefs.h
+ fi
+@@ -7395,7 +7617,7 @@ for ac_prog in gawk nawk awk
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_AWK+y}
+ then :
+@@ -7416,7 +7638,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AWK="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -7428,11 +7650,11 @@ esac
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+-printf "%s\n" "$AWK" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
++printf '%s\n' "$AWK" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -7465,16 +7687,16 @@ if test "$GPROF" != "" ; then
+    OLD_CFLAGS=$CFLAGS
+    if ! add_arg_to_cflags -pg ; then GPROF="" ; fi
+    CFLAGS=$OLD_CFLAGS
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking working gprof" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking working gprof" >&5
+ printf %s "checking working gprof... " >&6; }
+    if test "$GPROF" = "" ; then
+-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
+-printf "%s\n" "disabled" >&6; }
++       { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
++printf '%s\n' "disabled" >&6; }
+    else
+-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+-printf "%s\n" "ok" >&6; }
++       { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
++printf '%s\n' "ok" >&6; }
+-printf "%s\n" "#define USE_GPROF 1" >>confdefs.h
++printf '%s\n' "#define USE_GPROF 1" >>confdefs.h
+    fi
+ fi
+@@ -7629,7 +7851,7 @@ for ac_prog in makeinfo
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_MAKEINFO+y}
+ then :
+@@ -7650,7 +7872,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_MAKEINFO="$ac_prog"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -7662,11 +7884,11 @@ esac
+ fi
+ MAKEINFO=$ac_cv_prog_MAKEINFO
+ if test -n "$MAKEINFO"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
+-printf "%s\n" "$MAKEINFO" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
++printf '%s\n' "$MAKEINFO" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -7676,7 +7898,7 @@ test -n "$MAKEINFO" || MAKEINFO=""false"
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version (for dynamic loading)" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking system version (for dynamic loading)" >&5
+ printf %s "checking system version (for dynamic loading)... " >&6; }
+ if machine=`uname -m` ; then true; else machine=unknown ; fi
+@@ -7685,8 +7907,8 @@ if test -f /usr/lib/NextStep/software_ve
+ else
+     system=`uname -s`-`uname -r`
+     if test "$?" -ne 0 ; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unknown (cannot find uname command)" >&5
+-printf "%s\n" "unknown (cannot find uname command)" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unknown (cannot find uname command)" >&5
++printf '%s\n' "unknown (cannot find uname command)" >&6; }
+       system=unknown
+     else
+       # Special check for weird MP-RAS system (uname returns weird
+@@ -7698,8 +7920,8 @@ printf "%s\n" "unknown (cannot find unam
+       if test "`uname -s`" = "AIX" ; then
+           system=AIX-`uname -v`.`uname -r`
+       fi
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $system" >&5
+-printf "%s\n" "$system" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $system" >&5
++printf '%s\n' "$system" >&6; }
+     fi
+ fi
+@@ -7710,7 +7932,7 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "malloc/malloc.h" "ac_cv_header_malloc_malloc_h" "$ac_includes_default"
+ if test "x$ac_cv_header_malloc_malloc_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h
+ else case e in #(
+   e) as_fn_error $? "need malloc.h on macosx" "$LINENO" 5 ;;
+@@ -7725,7 +7947,7 @@ done
+ if test "x$ac_cv_member_struct__malloc_zone_t_memalign" = xyes
+ then :
+-printf "%s\n" "#define HAVE_MALLOC_ZONE_MEMALIGN 1" >>confdefs.h
++printf '%s\n' "#define HAVE_MALLOC_ZONE_MEMALIGN 1" >>confdefs.h
+ fi
+@@ -7738,13 +7960,13 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default"
+ if test "x$ac_cv_header_setjmp_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof jmp_buf" >&5
++  printf '%s\n' "#define HAVE_SETJMP_H 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof jmp_buf" >&5
+ printf %s "checking sizeof jmp_buf... " >&6; }
+      if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -7769,14 +7991,14 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+   sizeof_jmp_buf=`cat conftest1`
+-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sizeof_jmp_buf" >&5
+-printf "%s\n" "$sizeof_jmp_buf" >&6; }
++        { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $sizeof_jmp_buf" >&5
++printf '%s\n' "$sizeof_jmp_buf" >&6; }
+-printf "%s\n" "#define SIZEOF_JMP_BUF $sizeof_jmp_buf" >>confdefs.h
++printf '%s\n' "#define SIZEOF_JMP_BUF $sizeof_jmp_buf" >>confdefs.h
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -7794,8 +8016,8 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+ if test "x$ac_cv_header_unistd_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysconf in -lc" >&5
++  printf '%s\n' "#define HAVE_UNISTD_H 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sysconf in -lc" >&5
+ printf %s "checking for sysconf in -lc... " >&6; }
+ if test ${ac_cv_lib_c_sysconf+y}
+ then :
+@@ -7836,17 +8058,17 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sysconf" >&5
+-printf "%s\n" "$ac_cv_lib_c_sysconf" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sysconf" >&5
++printf '%s\n' "$ac_cv_lib_c_sysconf" >&6; }
+ if test "x$ac_cv_lib_c_sysconf" = xyes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _SC_CLK_TCK" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _SC_CLK_TCK" >&5
+ printf %s "checking _SC_CLK_TCK... " >&6; }
+            hz=0
+            if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -7877,8 +8099,8 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hz" >&5
+-printf "%s\n" "$hz" >&6; }
++           { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hz" >&5
++printf '%s\n' "$hz" >&6; }
+ fi
+ fi
+@@ -7891,8 +8113,8 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default"
+ if test "x$ac_cv_header_gmp_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_GMP_H 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5
++  printf '%s\n' "#define HAVE_GMP_H 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5
+ printf %s "checking for __gmpz_init in -lgmp... " >&6; }
+ if test ${ac_cv_lib_gmp___gmpz_init+y}
+ then :
+@@ -7933,16 +8155,16 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5
+-printf "%s\n" "$ac_cv_lib_gmp___gmpz_init" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5
++printf '%s\n' "$ac_cv_lib_gmp___gmpz_init" >&6; }
+ if test "x$ac_cv_lib_gmp___gmpz_init" = xyes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for external gmp version" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for external gmp version" >&5
+ printf %s "checking for external gmp version... " >&6; }
+        if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -7967,8 +8189,8 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: good" >&5
+-printf "%s\n" "good" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: good" >&5
++printf '%s\n' "good" >&6; }
+             TLIBS="$TLIBS -lgmp"
+             echo "#include \"gmp.h\"" >foo.c
+             echo "int main() {return 0;}" >>foo.c
+@@ -7991,7 +8213,7 @@ if test "$MP_INCLUDE" = "" ; then
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for leading underscore in object symbols" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for leading underscore in object symbols" >&5
+ printf %s "checking for leading underscore in object symbols... " >&6; }
+ cat>foo.c <<EOFF
+ #include <math.h>
+@@ -8002,22 +8224,22 @@ $CC -c foo.c -o foo.o
+ if nm foo.o |grep " U " | grep "_cos" >/dev/null || nm foo.o |grep " U " | grep " _getc" >/dev/null ; then
+     LEADING_UNDERSCORE=1
+-printf "%s\n" "#define LEADING_UNDERSCORE 1" >>confdefs.h
++printf '%s\n' "#define LEADING_UNDERSCORE 1" >>confdefs.h
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5
+-printf "%s\n" "\"yes\"" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5
++printf '%s\n' "\"yes\"" >&6; }
+ else
+     LEADING_UNDERSCORE=""
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
+-printf "%s\n" "\"no\"" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
++printf '%s\n' "\"no\"" >&6; }
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for size of gmp limbs" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for size of gmp limbs" >&5
+ printf %s "checking for size of gmp limbs... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8052,17 +8274,17 @@ esac
+ fi
+-printf "%s\n" "#define MP_LIMB_BYTES $mpsize" >>confdefs.h
++printf '%s\n' "#define MP_LIMB_BYTES $mpsize" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mpsize" >&5
+-printf "%s\n" "$mpsize" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mpsize" >&5
++printf '%s\n' "$mpsize" >&6; }
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _SHORT_LIMB" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _SHORT_LIMB" >&5
+ printf %s "checking _SHORT_LIMB... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8089,12 +8311,12 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define __SHORT_LIMB 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define __SHORT_LIMB 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -8103,12 +8325,12 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _LONG_LONG_LIMB" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _LONG_LONG_LIMB" >&5
+ printf %s "checking _LONG_LONG_LIMB... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8135,12 +8357,12 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define __LONG_LONG_LIMB 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define __LONG_LONG_LIMB 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -8151,25 +8373,25 @@ fi
+ GMP=1
+-printf "%s\n" "#define GMP 1" >>confdefs.h
++printf '%s\n' "#define GMP 1" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld option -Map" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU ld option -Map" >&5
+ printf %s "checking for GNU ld option -Map... " >&6; }
+ touch map foo.c
+ $CC -o foo  -Wl,-Map  map foo.c >/dev/null 2>&1
+ if test `cat map | wc -l` != "0" ; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+-printf "%s\n" "#define HAVE_GNU_LD 1" >>confdefs.h
++printf '%s\n' "#define HAVE_GNU_LD 1" >>confdefs.h
+       GNU_LD=1
+ else
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+       GNU_LD=
+ fi
+ rm -f foo.c foo.o foo map
+@@ -8181,7 +8403,7 @@ rm -f foo.c foo.o foo map
+ if test "$enable_xgcl" = "yes" ; then
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+ printf %s "checking for X... " >&6; }
+@@ -8237,11 +8459,11 @@ if mkdir conftest.dir; then
+   cd conftest.dir
+   cat >Imakefile <<'_ACEOF'
+ incroot:
+-      @echo incroot='${INCROOT}'
++      @printf '%s\n' incroot='${INCROOT}'
+ usrlibdir:
+-      @echo usrlibdir='${USRLIBDIR}'
++      @printf '%s\n' usrlibdir='${USRLIBDIR}'
+ libdir:
+-      @echo libdir='${LIBDIR}'
++      @printf '%s\n' libdir='${LIBDIR}'
+ _ACEOF
+   if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+     # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+@@ -8361,7 +8583,7 @@ then :
+ ac_x_libraries=
+ else case e in #(
+   e) LIBS=$ac_save_LIBS
+-for ac_dir in `printf "%s\n" "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
++for ac_dir in `printf '%s\n' "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+ do
+   # Don't even attempt the hair of trying to link an X program!
+   for ac_extension in a so sl dylib la dll; do
+@@ -8398,8 +8620,8 @@ fi
+ fi # $with_x != no
+ if test "$have_x" != yes; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+-printf "%s\n" "$have_x" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
++printf '%s\n' "$have_x" >&6; }
+   no_x=yes
+ else
+   # If each of the values was on the command line, it overrides each guess.
+@@ -8409,12 +8631,12 @@ else
+   ac_cv_have_x="have_x=yes\
+       ac_x_includes='$x_includes'\
+       ac_x_libraries='$x_libraries'"
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+-printf "%s\n" "libraries $x_libraries, headers $x_includes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
++printf '%s\n' "libraries $x_libraries, headers $x_includes" >&6; }
+ fi
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lX11" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lX11" >&5
+ printf %s "checking for main in -lX11... " >&6; }
+ if test ${ac_cv_lib_X11_main+y}
+ then :
+@@ -8446,16 +8668,16 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_main" >&5
+-printf "%s\n" "$ac_cv_lib_X11_main" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_main" >&5
++printf '%s\n' "$ac_cv_lib_X11_main" >&6; }
+ if test "x$ac_cv_lib_X11_main" = xyes
+ then :
+   X_LIBS="$X_LIBS -lX11"
+-printf "%s\n" "#define HAVE_XGCL 1" >>confdefs.h
++printf '%s\n' "#define HAVE_XGCL 1" >>confdefs.h
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: missing x libraries -- cannot compile xgcl" >&5
+-printf "%s\n" "missing x libraries -- cannot compile xgcl" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: missing x libraries -- cannot compile xgcl" >&5
++printf '%s\n' "missing x libraries -- cannot compile xgcl" >&6; } ;;
+ esac
+ fi
+@@ -8479,7 +8701,7 @@ fi
+ #
+ # boot.so requires dlopen
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+ printf %s "checking for dlopen in -ldl... " >&6; }
+ if test ${ac_cv_lib_dl_dlopen+y}
+ then :
+@@ -8520,11 +8742,11 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
++printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; }
+ if test "x$ac_cv_lib_dl_dlopen" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_LIBDL 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_LIBDL 1" >>confdefs.h
+   LIBS="-ldl $LIBS"
+@@ -8549,7 +8771,7 @@ if test "x$ac_cv_func_xdr_double" = xyes
+ then :
+   XDR_LIB=" "
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -ltirpc" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -ltirpc" >&5
+ printf %s "checking for xdr_double in -ltirpc... " >&6; }
+ if test ${ac_cv_lib_tirpc_xdr_double+y}
+ then :
+@@ -8590,13 +8812,13 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tirpc_xdr_double" >&5
+-printf "%s\n" "$ac_cv_lib_tirpc_xdr_double" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tirpc_xdr_double" >&5
++printf '%s\n' "$ac_cv_lib_tirpc_xdr_double" >&6; }
+ if test "x$ac_cv_lib_tirpc_xdr_double" = xyes
+ then :
+   XDR_LIB=tirpc
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lgssrpc" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lgssrpc" >&5
+ printf %s "checking for xdr_double in -lgssrpc... " >&6; }
+ if test ${ac_cv_lib_gssrpc_xdr_double+y}
+ then :
+@@ -8637,13 +8859,13 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssrpc_xdr_double" >&5
+-printf "%s\n" "$ac_cv_lib_gssrpc_xdr_double" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssrpc_xdr_double" >&5
++printf '%s\n' "$ac_cv_lib_gssrpc_xdr_double" >&6; }
+ if test "x$ac_cv_lib_gssrpc_xdr_double" = xyes
+ then :
+   XDR_LIB=gssrpc
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lrpc" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lrpc" >&5
+ printf %s "checking for xdr_double in -lrpc... " >&6; }
+ if test ${ac_cv_lib_rpc_xdr_double+y}
+ then :
+@@ -8684,13 +8906,13 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpc_xdr_double" >&5
+-printf "%s\n" "$ac_cv_lib_rpc_xdr_double" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpc_xdr_double" >&5
++printf '%s\n' "$ac_cv_lib_rpc_xdr_double" >&6; }
+ if test "x$ac_cv_lib_rpc_xdr_double" = xyes
+ then :
+   XDR_LIB=rpc
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -loncrpc" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -loncrpc" >&5
+ printf %s "checking for xdr_double in -loncrpc... " >&6; }
+ if test ${ac_cv_lib_oncrpc_xdr_double+y}
+ then :
+@@ -8731,8 +8953,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_oncrpc_xdr_double" >&5
+-printf "%s\n" "$ac_cv_lib_oncrpc_xdr_double" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_oncrpc_xdr_double" >&5
++printf '%s\n' "$ac_cv_lib_oncrpc_xdr_double" >&6; }
+ if test "x$ac_cv_lib_oncrpc_xdr_double" = xyes
+ then :
+   XDR_LIB=oncrpc
+@@ -8753,7 +8975,7 @@ fi
+     if test "$XDR_LIB" != ""; then
+-printf "%s\n" "#define HAVE_XDR 1" >>confdefs.h
++printf '%s\n' "#define HAVE_XDR 1" >>confdefs.h
+       if test "$XDR_LIB" != " "; then
+           TLIBS="$TLIBS -l$XDR_LIB"
+@@ -8763,12 +8985,12 @@ printf "%s\n" "#define HAVE_XDR 1" >>con
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin_clzl" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin_clzl" >&5
+ printf %s "checking __builtin_clzl... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8796,14 +9018,14 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+-printf "%s\n" "#define HAVE_CLZL 1" >>confdefs.h
++printf '%s\n' "#define HAVE_CLZL 1" >>confdefs.h
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -8812,12 +9034,12 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin_ctzl" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin_ctzl" >&5
+ printf %s "checking __builtin_ctzl... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8845,14 +9067,14 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+-printf "%s\n" "#define HAVE_CTZL 1" >>confdefs.h
++printf '%s\n' "#define HAVE_CTZL 1" >>confdefs.h
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -8861,20 +9083,12 @@ esac
+ fi
+-
+-case $use in
+-#    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
+-#    hppa*) ;;    #FIXME
+-#    powerpc*) ;; #FIXME
+-#    alpha*) ;;   #FIXME
+-    ia64*) ;;    #FIXME
+-    *)
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5
+ printf %s "checking __builtin___clear_cache... " >&6; }
+-      if test "$cross_compiling" = yes
++if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -8885,8 +9099,8 @@ int
+ main (void)
+ {
+-                      char v[1<<12];
+-                      __builtin___clear_cache(v,v+sizeof(v));
++              char v[1<<12];
++              __builtin___clear_cache(v,v+sizeof(v));
+   ;
+   return 0;
+@@ -8895,21 +9109,20 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_BUILTIN_CLEAR_CACHE 1" >>confdefs.h
++printf '%s\n' "#define HAVE_BUILTIN_CLEAR_CACHE 1" >>confdefs.h
+-           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+   conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+ esac
+ fi
+-;;
+-esac
++
+ #AC_CONFIG_SUBDIRS($MY_SUBDIRS)
+@@ -8921,7 +9134,7 @@ esac
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
+ printf %s "checking size of size_t... " >&6; }
+ if test ${ac_cv_sizeof_size_t+y}
+ then :
+@@ -8931,32 +9144,25 @@ else case e in #(
+ then :
+ else case e in #(
+-  e) if test "$ac_cv_type_size_t" = yes; then
+-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-as_fn_error 77 "cannot compute sizeof (size_t)
+-See 'config.log' for more details" "$LINENO" 5; }
+-   else
+-     ac_cv_sizeof_size_t=0
+-   fi ;;
++  e) ac_cv_sizeof_size_t=0 ;;
+ esac
+ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
+-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
++printf '%s\n' "$ac_cv_sizeof_size_t" >&6; }
+-printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
++printf '%s\n' "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+ printf %s "checking size of long... " >&6; }
+ if test ${ac_cv_sizeof_long+y}
+ then :
+@@ -8966,32 +9172,25 @@ else case e in #(
+ then :
+ else case e in #(
+-  e) if test "$ac_cv_type_long" = yes; then
+-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-as_fn_error 77 "cannot compute sizeof (long)
+-See 'config.log' for more details" "$LINENO" 5; }
+-   else
+-     ac_cv_sizeof_long=0
+-   fi ;;
++  e) ac_cv_sizeof_long=0 ;;
+ esac
+ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
++printf '%s\n' "$ac_cv_sizeof_long" >&6; }
+-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
++printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+ printf %s "checking size of short... " >&6; }
+ if test ${ac_cv_sizeof_short+y}
+ then :
+@@ -9001,32 +9200,25 @@ else case e in #(
+ then :
+ else case e in #(
+-  e) if test "$ac_cv_type_short" = yes; then
+-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-as_fn_error 77 "cannot compute sizeof (short)
+-See 'config.log' for more details" "$LINENO" 5; }
+-   else
+-     ac_cv_sizeof_short=0
+-   fi ;;
++  e) ac_cv_sizeof_short=0 ;;
+ esac
+ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+-printf "%s\n" "$ac_cv_sizeof_short" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
++printf '%s\n' "$ac_cv_sizeof_short" >&6; }
+-printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
++printf '%s\n' "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+ printf %s "checking size of int... " >&6; }
+ if test ${ac_cv_sizeof_int+y}
+ then :
+@@ -9036,32 +9228,25 @@ else case e in #(
+ then :
+ else case e in #(
+-  e) if test "$ac_cv_type_int" = yes; then
+-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-as_fn_error 77 "cannot compute sizeof (int)
+-See 'config.log' for more details" "$LINENO" 5; }
+-   else
+-     ac_cv_sizeof_int=0
+-   fi ;;
++  e) ac_cv_sizeof_int=0 ;;
+ esac
+ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+-printf "%s\n" "$ac_cv_sizeof_int" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
++printf '%s\n' "$ac_cv_sizeof_int" >&6; }
+-printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
++printf '%s\n' "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+ # This bug is HP SR number 8606223364.
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
+ printf %s "checking size of char... " >&6; }
+ if test ${ac_cv_sizeof_char+y}
+ then :
+@@ -9071,25 +9256,18 @@ else case e in #(
+ then :
+ else case e in #(
+-  e) if test "$ac_cv_type_char" = yes; then
+-     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+-as_fn_error 77 "cannot compute sizeof (char)
+-See 'config.log' for more details" "$LINENO" 5; }
+-   else
+-     ac_cv_sizeof_char=0
+-   fi ;;
++  e) ac_cv_sizeof_char=0 ;;
+ esac
+ fi
+  ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
+-printf "%s\n" "$ac_cv_sizeof_char" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
++printf '%s\n' "$ac_cv_sizeof_char" >&6; }
+-printf "%s\n" "#define SIZEOF_CHAR $ac_cv_sizeof_char" >>confdefs.h
++printf '%s\n' "#define SIZEOF_CHAR $ac_cv_sizeof_char" >>confdefs.h
+@@ -9120,9 +9298,9 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
+ if test "x$ac_cv_header_math_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_MATH_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_MATH_H 1" >>confdefs.h
+-printf "%s\n" "#define HAVE_MATH_H 1" >>confdefs.h
++printf '%s\n' "#define HAVE_MATH_H 1" >>confdefs.h
+ fi
+@@ -9132,9 +9310,9 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "complex.h" "ac_cv_header_complex_h" "$ac_includes_default"
+ if test "x$ac_cv_header_complex_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_COMPLEX_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_COMPLEX_H 1" >>confdefs.h
+-printf "%s\n" "#define HAVE_COMPLEX_H 1" >>confdefs.h
++printf '%s\n' "#define HAVE_COMPLEX_H 1" >>confdefs.h
+ fi
+@@ -9142,12 +9320,12 @@ done
+ ####  Memory areas and alignment
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for byte order" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for byte order" >&5
+ printf %s "checking for byte order... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9170,13 +9348,13 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: little" >&5
+-printf "%s\n" "little" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: little" >&5
++printf '%s\n' "little" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: big" >&5
+-printf "%s\n" "big" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: big" >&5
++printf '%s\n' "big" >&6; }
+-printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
++printf '%s\n' "#define WORDS_BIGENDIAN 1" >>confdefs.h
+  ;;
+ esac
+ fi
+@@ -9188,12 +9366,12 @@ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for word order" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for word order" >&5
+ printf %s "checking for word order... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9215,13 +9393,13 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: little" >&5
+-printf "%s\n" "little" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: little" >&5
++printf '%s\n' "little" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: big" >&5
+-printf "%s\n" "big" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: big" >&5
++printf '%s\n' "big" >&6; }
+-printf "%s\n" "#define DOUBLE_BIGENDIAN 1" >>confdefs.h
++printf '%s\n' "#define DOUBLE_BIGENDIAN 1" >>confdefs.h
+  ;;
+ esac
+ fi
+@@ -9239,7 +9417,7 @@ case $use in
+     *) min_pagewidth=12;;
+ esac
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hugepagewidth" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for hugepagewidth" >&5
+ printf %s "checking for hugepagewidth... " >&6; }
+ j=""
+ if test -e /proc/meminfo ; then
+@@ -9247,11 +9425,11 @@ if test -e /proc/meminfo ; then
+    if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}'  /proc/meminfo`
+ fi
+ if test "$j" != "" ; then
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $j" >&5
+-printf "%s\n" "$j" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $j" >&5
++printf '%s\n' "$j" >&6; }
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to detect undeclared functions" >&5
++printf %s "checking for $CC options to detect undeclared functions... " >&6; }
+ if test ${ac_cv_c_undeclared_builtin_options+y}
+ then :
+   printf %s "(cached) " >&6
+@@ -9319,12 +9497,12 @@ rm -f core conftest.err conftest.$ac_obj
+    ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
++printf '%s\n' "$ac_cv_c_undeclared_builtin_options" >&6; }
+   case $ac_cv_c_undeclared_builtin_options in #(
+   'cannot detect') :
+-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++    { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot make $CC report undeclared builtins
+ See 'config.log' for more details" "$LINENO" 5; } ;; #(
+   'none needed') :
+@@ -9333,6 +9511,49 @@ See 'config.log' for more details" "$LIN
+     ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+ esac
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to ignore future-version functions" >&5
++printf %s "checking for $CC options to ignore future-version functions... " >&6; }
++if test ${ac_cv_c_future_darwin_options+y}
++then :
++  printf %s "(cached) " >&6
++else case e in #(
++  e)       ac_compile_saved="$ac_compile"
++   ac_compile="$ac_compile -Werror=unguarded-availability-new"
++   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++#if ! (defined __APPLE__ && defined __MACH__)
++         #error "-Werror=unguarded-availability-new not needed here"
++        #endif
++
++int
++main (void)
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"
++then :
++  ac_cv_c_future_darwin_options='-Werror=unguarded-availability-new'
++else case e in #(
++  e) ac_cv_c_future_darwin_options='none needed' ;;
++esac
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
++   ac_compile="$ac_compile_saved"
++   ;;
++esac
++fi
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_future_darwin_options" >&5
++printf '%s\n' "$ac_cv_c_future_darwin_options" >&6; }
++ case $ac_cv_c_future_darwin_options in #(
++  'none needed') :
++    ac_c_future_darwin_options='' ;; #(
++  *) :
++    ac_c_future_darwin_options=$ac_cv_c_future_darwin_options ;;
++esac
++
+ ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+ if test "x$ac_cv_header_sys_mman_h" = xyes
+ then :
+@@ -9340,15 +9561,15 @@ then :
+ if test "x$ac_cv_func_madvise" = xyes
+ then :
+   ac_fn_check_decl "$LINENO" "MADV_HUGEPAGE" "ac_cv_have_decl_MADV_HUGEPAGE" "#include <sys/mman.h>
+-" "$ac_c_undeclared_builtin_options" "CFLAGS"
++" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
+ if test "x$ac_cv_have_decl_MADV_HUGEPAGE" = xyes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking madvise works" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking madvise works" >&5
+ printf %s "checking madvise works... " >&6; }
+            if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9375,15 +9596,15 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+-printf "%s\n" "#define HAVE_MADVISE_HUGEPAGE 1" >>confdefs.h
++printf '%s\n' "#define HAVE_MADVISE_HUGEPAGE 1" >>confdefs.h
+                if test $min_pagewidth -lt $j ; then min_pagewidth=$j ; fi
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -9398,8 +9619,8 @@ fi
+ fi
+ else
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-printf "%s\n" "not found" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++printf '%s\n' "not found" >&6; }
+ fi
+ # Check whether --enable-min_pagewidth was given.
+@@ -9409,12 +9630,12 @@ then :
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pagewidth" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pagewidth" >&5
+ printf %s "checking for pagewidth... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9453,19 +9674,19 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PAGEWIDTH" >&5
+-printf "%s\n" "$PAGEWIDTH" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PAGEWIDTH" >&5
++printf '%s\n' "$PAGEWIDTH" >&6; }
+-printf "%s\n" "#define PAGEWIDTH $PAGEWIDTH" >>confdefs.h
++printf '%s\n' "#define PAGEWIDTH $PAGEWIDTH" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for required object alignment" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for required object alignment" >&5
+ printf %s "checking for required object alignment... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9503,10 +9724,10 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+   obj_align=`cat conftest1`
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5
+-printf "%s\n" "$obj_align" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5
++printf '%s\n' "$obj_align" >&6; }
+-printf "%s\n" "#define OBJ_ALIGNMENT $obj_align" >>confdefs.h
++printf '%s\n' "#define OBJ_ALIGNMENT $obj_align" >>confdefs.h
+ else case e in #(
+   e) as_fn_error $? "Cannot find object alignent" "$LINENO" 5 ;;
+@@ -9518,12 +9739,12 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C extension variable alignment" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C extension variable alignment" >&5
+ printf %s "checking for C extension variable alignment... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9552,18 +9773,18 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5
+-printf "%s\n" "$obj_align" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5
++printf '%s\n' "$obj_align" >&6; }
+-printf "%s\n" "#define OBJ_ALIGN $obj_align" >>confdefs.h
++printf '%s\n' "#define OBJ_ALIGN $obj_align" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C extension noreturn function attribute" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C extension noreturn function attribute" >&5
+ printf %s "checking for C extension noreturn function attribute... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9592,13 +9813,13 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $no_return" >&5
+-printf "%s\n" "$no_return" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $no_return" >&5
++printf '%s\n' "$no_return" >&6; }
+-printf "%s\n" "#define NO_RETURN $no_return" >>confdefs.h
++printf '%s\n' "#define NO_RETURN $no_return" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof struct contblock" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof struct contblock" >&5
+ printf %s "checking sizeof struct contblock... " >&6; }
+ if test "$cross_compiling" = yes
+@@ -9644,18 +9865,18 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sizeof_contblock" >&5
+-printf "%s\n" "$sizeof_contblock" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $sizeof_contblock" >&5
++printf '%s\n' "$sizeof_contblock" >&6; }
+-printf "%s\n" "#define SIZEOF_CONTBLOCK $sizeof_contblock" >>confdefs.h
++printf '%s\n' "#define SIZEOF_CONTBLOCK $sizeof_contblock" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5
+ printf %s "checking CSTACK_DIRECTION... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9685,18 +9906,18 @@ esac
+ fi
+-printf "%s\n" "#define CSTACK_DIRECTION $cstack_direction" >>confdefs.h
++printf '%s\n' "#define CSTACK_DIRECTION $cstack_direction" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5
+-printf "%s\n" "$cstack_direction" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5
++printf '%s\n' "$cstack_direction" >&6; }
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding CSTACK_ALIGNMENT" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding CSTACK_ALIGNMENT" >&5
+ printf %s "checking finding CSTACK_ALIGNMENT... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9732,19 +9953,19 @@ esac
+ fi
+-printf "%s\n" "#define CSTACK_ALIGNMENT $cstack_alignment" >>confdefs.h
++printf '%s\n' "#define CSTACK_ALIGNMENT $cstack_alignment" >>confdefs.h
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_alignment" >&5
+-printf "%s\n" "$cstack_alignment" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_alignment" >&5
++printf '%s\n' "$cstack_alignment" >&6; }
+ if test $cstack_direction -eq 1 ; then
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5
+ printf %s "checking CSTACK_TOP... " >&6; }
+    if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9783,15 +10004,15 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
+-printf "%s\n" "$cstack_top" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
++printf '%s\n' "$cstack_top" >&6; }
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5
+ printf %s "checking relocated CSTACK_TOP... " >&6; }
+    if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9833,17 +10054,17 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
+-printf "%s\n" "$cstack_top" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
++printf '%s\n' "$cstack_top" >&6; }
+ else
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5
+ printf %s "checking CSTACK_TOP... " >&6; }
+    if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9879,15 +10100,15 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
+-printf "%s\n" "$cstack_top" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
++printf '%s\n' "$cstack_top" >&6; }
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5
+ printf %s "checking relocated CSTACK_TOP... " >&6; }
+    if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9927,17 +10148,17 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
+-printf "%s\n" "$cstack_top" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5
++printf '%s\n' "$cstack_top" >&6; }
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking cstack bits" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking cstack bits" >&5
+ printf %s "checking cstack bits... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -9979,16 +10200,16 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_bits" >&5
+-printf "%s\n" "$cstack_bits" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_bits" >&5
++printf '%s\n' "$cstack_bits" >&6; }
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking NEG_CSTACK_ADDRESS" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking NEG_CSTACK_ADDRESS" >&5
+ printf %s "checking NEG_CSTACK_ADDRESS... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10010,12 +10231,12 @@ else case e in #(
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+      neg_cstack_address=1
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+      neg_cstack_address=0 ;;
+ esac
+ fi
+@@ -10043,7 +10264,7 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding default linker script" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding default linker script" >&5
+ printf %s "checking finding default linker script... " >&6; }
+ if ! test -d unixport ; then mkdir unixport ; fi
+ touch unixport/gcl.script
+@@ -10053,27 +10274,29 @@ $CC $LDFLAGS -Wl,--verbose foo.c -o foo
+ rm -rf foo.c foo
+ if test "`cat gcl.script | wc -l`" != "0" ; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: got it" >&5
+-printf "%s\n" "got it" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: got it" >&5
++printf '%s\n' "got it" >&6; }
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking output_arch" >&5
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking output_arch" >&5
+ printf %s "checking output_arch... " >&6; }
+       output_arch=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f1 -d:|tr '-' '_'`;
+       if test "$output_arch" != "" ; then
+-printf "%s\n" "#define OUTPUT_ARCH bfd_arch_${output_arch}" >>confdefs.h
++cat >>confdefs.h <<_ACEOF
++#define OUTPUT_ARCH bfd_arch_${output_arch}
++_ACEOF
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: bfd_arch_${output_arch}" >&5
+-printf "%s\n" "bfd_arch_${output_arch}" >&6; }
++          { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: bfd_arch_${output_arch}" >&5
++printf '%s\n' "bfd_arch_${output_arch}" >&6; }
+       else
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-printf "%s\n" "not found" >&6; }
++          { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++printf '%s\n' "not found" >&6; }
+       fi
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5
+-printf "%s\n" "$as_me: trying to adjust text start" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5
++printf '%s\n' "$as_me: trying to adjust text start" >&6;}
+       cp gcl.script gcl.script.def
+       n=-1;
+@@ -10101,16 +10324,16 @@ printf "%s\n" "$as_me: trying to adjust
+         n=`$AWK 'END {print n+1}' n=$n </dev/null`
+       done
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: min log text start $min" >&5
+-printf "%s\n" "$as_me: min log text start $min" >&6;}
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: max log text start $max" >&5
+-printf "%s\n" "$as_me: max log text start $max" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start $min" >&5
++printf '%s\n' "$as_me: min log text start $min" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: max log text start $max" >&5
++printf '%s\n' "$as_me: max log text start $max" >&6;}
+       if test $neg_cstack_address -eq 1 ; then #FIXME test this
+           if test $cstack_bits -lt $max ; then
+               max=$cstack_bits;
+-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: max log text start reduced to $max considering c stack address" >&5
+-printf "%s\n" "$as_me: max log text start reduced to $max considering c stack address" >&6;}
++              { printf '%s\n' "$as_me:${as_lineno-$LINENO}: max log text start reduced to $max considering c stack address" >&5
++printf '%s\n' "$as_me: max log text start reduced to $max considering c stack address" >&6;}
+           fi
+       fi
+@@ -10123,8 +10346,8 @@ printf "%s\n" "$as_me: max log text star
+          fi
+          if test $min -lt $q && test $q -lt $max && test $q -lt 30; then
+             min=$q
+-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5
+-printf "%s\n" "$as_me: min log text start increased to $min over c stack address" >&6;}
++            { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5
++printf '%s\n' "$as_me: min log text start increased to $min over c stack address" >&6;}
+          fi
+       fi
+@@ -10135,50 +10358,50 @@ printf "%s\n" "$as_me: min log text star
+         if test $max -ge $enable_fastimmfix && test "$enable_immfix" != "no" ; then
+               j=`$AWK 'END {for (i=j=0;j<=n;j++) i=i ? i*2 : 1;printf("%x\n",3*i)}' n=$max </dev/null`
+               low_shft=`$AWK 'END {print n+1}' n=$max </dev/null`;
+-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: raising log text to 0x$j for a $max bit wide low immfix table" >&5
+-printf "%s\n" "$as_me: raising log text to 0x$j for a $max bit wide low immfix table" >&6;}
++              { printf '%s\n' "$as_me:${as_lineno-$LINENO}: raising log text to 0x$j for a $max bit wide low immfix table" >&5
++printf '%s\n' "$as_me: raising log text to 0x$j for a $max bit wide low immfix table" >&6;}
+         else
+               j=`$AWK 'END {for (i=j=0;j<=n;j++) i=i ? i*2 : 1;printf("%x\n",3*i)}' n=$min </dev/null`
+-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: lowering log text to 0x$j to maximize data area" >&5
+-printf "%s\n" "$as_me: lowering log text to 0x$j to maximize data area" >&6;}
++              { printf '%s\n' "$as_me:${as_lineno-$LINENO}: lowering log text to 0x$j to maximize data area" >&5
++printf '%s\n' "$as_me: lowering log text to 0x$j to maximize data area" >&6;}
+           fi
+       fi
+       if test "$low_shft" != "" ; then
+-printf "%s\n" "#define LOW_SHFT $low_shft" >>confdefs.h
++printf '%s\n' "#define LOW_SHFT $low_shft" >>confdefs.h
+-printf "%s\n" "#define OBJNULL (object)0x$j" >>confdefs.h
++printf '%s\n' "#define OBJNULL (object)0x$j" >>confdefs.h
+       else
+-printf "%s\n" "#define OBJNULL NULL" >>confdefs.h
++printf '%s\n' "#define OBJNULL NULL" >>confdefs.h
+       fi
+       #      echo $j;
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking our linker script" >&5
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking our linker script" >&5
+ printf %s "checking our linker script... " >&6; }
+       if test "$j" != "-1" ; then
+         cat gcl.script.def | $AWK '/SEGMENT_START/ {gsub("0x[0-9]*","0x" j,$0);} {print}' j=$j >gcl.script
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
+-printf "%s\n" "done" >&6; }
++          { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: done" >&5
++printf '%s\n' "done" >&6; }
+           rm -f gcl.script.def
+           assert_arg_to_ldflags -Wl,-T,gcl.script
+           cp gcl.script unixport
+       else
+-          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none found or not needed" >&5
+-printf "%s\n" "none found or not needed" >&6; }
++          { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none found or not needed" >&5
++printf '%s\n' "none found or not needed" >&6; }
+           rm -f gcl.script gcl.script.def
+       fi
+       rm -rf foo.c foo
+ else
+-printf "%s\n" "#define OBJNULL NULL" >>confdefs.h
++printf '%s\n' "#define OBJNULL NULL" >>confdefs.h
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-printf "%s\n" "not found" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++printf '%s\n' "not found" >&6; }
+ fi
+ #else
+@@ -10187,17 +10410,17 @@ fi
+ #fi
+-printf "%s\n" "#define CSSIZE $enable_cssize" >>confdefs.h
++printf '%s\n' "#define CSSIZE $enable_cssize" >>confdefs.h
+ mem_top=0
+ mem_range=0
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking mem top" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking mem top" >&5
+ printf %s "checking mem top... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10243,16 +10466,16 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mem_top" >&5
+-printf "%s\n" "$mem_top" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mem_top" >&5
++printf '%s\n' "$mem_top" >&6; }
+ if test "$mem_top" != "0x0" ; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding upper mem half range" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding upper mem half range" >&5
+ printf %s "checking finding upper mem half range... " >&6; }
+     if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10289,29 +10512,33 @@ rm -f core *.core core.conftest.* gmon.o
+ esac
+ fi
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mem_range" >&5
+-printf "%s\n" "$mem_range" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mem_range" >&5
++printf '%s\n' "$mem_range" >&6; }
+ fi
+ if test "$enable_immfix" != "no" ; then
+     if test "$mem_top" != "0x0" ; then
+       if test "$mem_range" != "0x0" ; then
+-printf "%s\n" "#define IM_FIX_BASE ${mem_top}UL" >>confdefs.h
++cat >>confdefs.h <<_ACEOF
++#define IM_FIX_BASE ${mem_top}UL
++_ACEOF
+-printf "%s\n" "#define IM_FIX_LIM ${mem_range}UL" >>confdefs.h
++cat >>confdefs.h <<_ACEOF
++#define IM_FIX_LIM ${mem_range}UL
++_ACEOF
+       fi
+     fi
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof long long int" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof long long int" >&5
+ printf %s "checking sizeof long long int... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10334,12 +10561,12 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_LONG_LONG 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define HAVE_LONG_LONG 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -10355,13 +10582,13 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+ if test "x$ac_cv_header_dirent_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_DIRENT_H 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_type" >&5
++  printf '%s\n' "#define HAVE_DIRENT_H 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for d_type" >&5
+ printf %s "checking for d_type... " >&6; }
+                if test "$cross_compiling" = yes
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ else case e in #(
+   e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -10384,13 +10611,13 @@ main (void)
+ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
+-printf "%s\n" "#define HAVE_D_TYPE 1" >>confdefs.h
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
++printf '%s\n' "#define HAVE_D_TYPE 1" >>confdefs.h
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -10407,21 +10634,21 @@ done
+ ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd"
+ if test "x$ac_cv_func_getcwd" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_GETCWD 1" >>confdefs.h
+ fi
+ ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd"
+ if test "x$ac_cv_func_getwd" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_GETWD 1" >>confdefs.h
+ fi
+ ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename"
+ if test "x$ac_cv_func_rename" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_RENAME 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_RENAME 1" >>confdefs.h
+ fi
+@@ -10431,7 +10658,7 @@ then :
+ else case e in #(
+   e)
+-printf "%s\n" "#define NO_UNAME 1" >>confdefs.h
++printf '%s\n' "#define NO_UNAME 1" >>confdefs.h
+  ;;
+ esac
+ fi
+@@ -10443,7 +10670,7 @@ do :
+   ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat"
+ if test "x$ac_cv_func_readlinkat" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_READLINKAT 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_READLINKAT 1" >>confdefs.h
+ else case e in #(
+   e) as_fn_error $? "must have readlinkat" "$LINENO" 5 ;;
+@@ -10455,7 +10682,7 @@ done
+ ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
+ if test "x$ac_cv_header_sys_ioctl_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
+ fi
+@@ -10464,13 +10691,13 @@ fi
+ ac_fn_c_check_header_compile "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default"
+ if test "x$ac_cv_header_elf_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_ELF_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_ELF_H 1" >>confdefs.h
+ fi
+ ac_fn_c_check_header_compile "$LINENO" "elf_abi.h" "ac_cv_header_elf_abi_h" "$ac_includes_default"
+ if test "x$ac_cv_header_elf_abi_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_ELF_ABI_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_ELF_ABI_H 1" >>confdefs.h
+ fi
+@@ -10478,14 +10705,14 @@ fi
+ ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default"
+ if test "x$ac_cv_header_sys_sockio_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
+ fi
+ if test "$use" != "mingw" ; then
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5
+ printf %s "checking for sin in -lm... " >&6; }
+ if test ${ac_cv_lib_m_sin+y}
+ then :
+@@ -10526,8 +10753,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
+-printf "%s\n" "$ac_cv_lib_m_sin" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5
++printf '%s\n' "$ac_cv_lib_m_sin" >&6; }
+ if test "x$ac_cv_lib_m_sin" = xyes
+ then :
+   LIBS="${LIBS} -lm"
+@@ -10537,7 +10764,7 @@ esac
+ fi
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lmingwex" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lmingwex" >&5
+ printf %s "checking for main in -lmingwex... " >&6; }
+ if test ${ac_cv_lib_mingwex_main+y}
+ then :
+@@ -10569,8 +10796,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mingwex_main" >&5
+-printf "%s\n" "$ac_cv_lib_mingwex_main" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mingwex_main" >&5
++printf '%s\n' "$ac_cv_lib_mingwex_main" >&6; }
+ if test "x$ac_cv_lib_mingwex_main" = xyes
+ then :
+   LIBS="${LIBS} -lmingwex"
+@@ -10589,9 +10816,9 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "values.h" "ac_cv_header_values_h" "$ac_includes_default"
+ if test "x$ac_cv_header_values_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_VALUES_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_VALUES_H 1" >>confdefs.h
+-printf "%s\n" "#define HAVE_VALUES_H 1" >>confdefs.h
++printf '%s\n' "#define HAVE_VALUES_H 1" >>confdefs.h
+ fi
+@@ -10605,9 +10832,9 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+ if test "x$ac_cv_header_float_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_FLOAT_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_FLOAT_H 1" >>confdefs.h
+-printf "%s\n" "#define HAVE_FLOAT_H 1" >>confdefs.h
++printf '%s\n' "#define HAVE_FLOAT_H 1" >>confdefs.h
+ fi
+@@ -10618,12 +10845,12 @@ done
+ # a more comprehensive later, i.e. checking that the fpclass
+ # test makes sense.  CM
+ #
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isnormal" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isnormal" >&5
+ printf %s "checking for isnormal... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10647,16 +10874,16 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_ISNORMAL 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define HAVE_ISNORMAL 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fpclass of ieeefp.h" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fpclass of ieeefp.h" >&5
+ printf %s "checking for fpclass of ieeefp.h... " >&6; }
+      if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10679,12 +10906,12 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_IEEEFP 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define HAVE_IEEEFP 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+@@ -10700,12 +10927,12 @@ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5
+ printf %s "checking for isfinite... " >&6; }
+ if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10729,16 +10956,16 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_ISFINITE 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define HAVE_ISFINITE 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for finite()" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for finite()" >&5
+ printf %s "checking for finite()... " >&6; }
+      if test "$cross_compiling" = yes
+ then :
+-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++  { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "cannot run test program while cross compiling
+ See 'config.log' for more details" "$LINENO" 5; }
+ else case e in #(
+@@ -10762,9 +10989,9 @@ _ACEOF
+ if ac_fn_c_try_run "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_FINITE 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++printf '%s\n' "#define HAVE_FINITE 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+   e) as_fn_error $? "no" "$LINENO" 5 ;;
+ esac
+@@ -10799,7 +11026,7 @@ fi
+ #        To get around this problem, check for both libraries together
+ #        if -lsocket doesn't work by itself.
+ #--------------------------------------------------------------------
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockets" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sockets" >&5
+ printf %s "checking for sockets... " >&6; }
+ tcl_checkBoth=0
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+@@ -10812,7 +11039,7 @@ esac
+ fi
+ if test "$tcl_checkSocket" = 1; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
+ printf %s "checking for main in -lsocket... " >&6; }
+ if test ${ac_cv_lib_socket_main+y}
+ then :
+@@ -10844,8 +11071,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
+-printf "%s\n" "$ac_cv_lib_socket_main" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
++printf '%s\n' "$ac_cv_lib_socket_main" >&6; }
+ if test "x$ac_cv_lib_socket_main" = xyes
+ then :
+   TLIBS="$TLIBS -lsocket"
+@@ -10875,7 +11102,7 @@ if test "x$ac_cv_func_gethostbyname" = x
+ then :
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5
+ printf %s "checking for main in -lnsl... " >&6; }
+ if test ${ac_cv_lib_nsl_main+y}
+ then :
+@@ -10907,8 +11134,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5
+-printf "%s\n" "$ac_cv_lib_nsl_main" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5
++printf '%s\n' "$ac_cv_lib_nsl_main" >&6; }
+ if test "x$ac_cv_lib_nsl_main" = xyes
+ then :
+   TLIBS="$TLIBS -lnsl"
+@@ -10938,8 +11165,8 @@ do :
+ "
+ if test "x$ac_cv_header_readline_readline_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_initialize in -lreadline" >&5
++  printf '%s\n' "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h
++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_initialize in -lreadline" >&5
+ printf %s "checking for rl_initialize in -lreadline... " >&6; }
+ if test ${ac_cv_lib_readline_rl_initialize+y}
+ then :
+@@ -10980,14 +11207,14 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_initialize" >&5
+-printf "%s\n" "$ac_cv_lib_readline_rl_initialize" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_initialize" >&5
++printf '%s\n' "$ac_cv_lib_readline_rl_initialize" >&6; }
+ if test "x$ac_cv_lib_readline_rl_initialize" = xyes
+ then :
+-printf "%s\n" "#define USE_READLINE 1" >>confdefs.h
++printf '%s\n' "#define USE_READLINE 1" >>confdefs.h
+-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for el_getc in -lreadline" >&5
++                               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for el_getc in -lreadline" >&5
+ printf %s "checking for el_getc in -lreadline... " >&6; }
+ if test ${ac_cv_lib_readline_el_getc+y}
+ then :
+@@ -11028,17 +11255,17 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_el_getc" >&5
+-printf "%s\n" "$ac_cv_lib_readline_el_getc" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_el_getc" >&5
++printf '%s\n' "$ac_cv_lib_readline_el_getc" >&6; }
+ if test "x$ac_cv_lib_readline_el_getc" = xyes
+ then :
+-printf "%s\n" "#define READLINE_IS_EDITLINE 1" >>confdefs.h
++printf '%s\n' "#define READLINE_IS_EDITLINE 1" >>confdefs.h
+ fi
+                                # These tests discover differences between readline 4.1 and 4.3
+-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
++                               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
+ printf %s "checking for rl_completion_matches in -lreadline... " >&6; }
+ if test ${ac_cv_lib_readline_rl_completion_matches+y}
+ then :
+@@ -11079,19 +11306,19 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5
+-printf "%s\n" "$ac_cv_lib_readline_rl_completion_matches" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5
++printf '%s\n' "$ac_cv_lib_readline_rl_completion_matches" >&6; }
+ if test "x$ac_cv_lib_readline_rl_completion_matches" = xyes
+ then :
+-printf "%s\n" "#define HAVE_DECL_RL_COMPLETION_MATCHES 1" >>confdefs.h
++printf '%s\n' "#define HAVE_DECL_RL_COMPLETION_MATCHES 1" >>confdefs.h
+-printf "%s\n" "#define HAVE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h
++printf '%s\n' "#define HAVE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h
+ fi
+-                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION" >&5
++                               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION" >&5
+ printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION... " >&6; }
+                                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11111,14 +11338,14 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION 1" >>confdefs.h
++printf '%s\n' "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION 1" >>confdefs.h
+-                                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++                                         { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+-                                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
++                                         { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T" >&5
+ printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T... " >&6; }
+                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11138,13 +11365,13 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h
++printf '%s\n' "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h
+-                                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++                                               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+                                                as_fn_error $? "Unknown rl_completion_entry_function return type" "$LINENO" 5 ;;
+ esac
+ fi
+@@ -11153,7 +11380,7 @@ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+-                                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CHAR" >&5
++                                 { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CHAR" >&5
+ printf %s "checking RL_READLINE_NAME_TYPE_CHAR... " >&6; }
+                                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11173,14 +11400,14 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define RL_READLINE_NAME_TYPE_CHAR 1" >>confdefs.h
++printf '%s\n' "#define RL_READLINE_NAME_TYPE_CHAR 1" >>confdefs.h
+-                                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++                                         { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
+-                                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CONST_CHAR" >&5
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
++                                         { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CONST_CHAR" >&5
+ printf %s "checking RL_READLINE_NAME_TYPE_CONST_CHAR... " >&6; }
+                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11200,13 +11427,13 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define RL_READLINE_NAME_TYPE_CONST_CHAR 1" >>confdefs.h
++printf '%s\n' "#define RL_READLINE_NAME_TYPE_CONST_CHAR 1" >>confdefs.h
+-                                                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++                                                 { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+                                                as_fn_error $? "Unknown rl_readline_name return type" "$LINENO" 5 ;;
+ esac
+ fi
+@@ -11228,7 +11455,7 @@ fi
+ # sockets
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking For network code for nsocket.c" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking For network code for nsocket.c" >&5
+ printf %s "checking For network code for nsocket.c... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11265,20 +11492,20 @@ _ACEOF
+ if ac_fn_c_try_link "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_NSOCKET 1" >>confdefs.h
++printf '%s\n' "#define HAVE_NSOCKET 1" >>confdefs.h
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam \
+     conftest$ac_exeext conftest.$ac_ext
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for listen using fcntl" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for listen using fcntl" >&5
+ printf %s "checking check for listen using fcntl... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11302,13 +11529,13 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define LISTEN_USE_FCNTL 1" >>confdefs.h
++printf '%s\n' "#define LISTEN_USE_FCNTL 1" >>confdefs.h
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+@@ -11320,7 +11547,7 @@ then :
+ else case e in #(
+   e)
+-printf "%s\n" "#define NO_PROFILE 1" >>confdefs.h
++printf '%s\n' "#define NO_PROFILE 1" >>confdefs.h
+  ;;
+ esac
+ fi
+@@ -11330,7 +11557,7 @@ ac_fn_c_check_func "$LINENO" "setenv" "a
+ if test "x$ac_cv_func_setenv" = xyes
+ then :
+-printf "%s\n" "#define HAVE_SETENV 1" >>confdefs.h
++printf '%s\n' "#define HAVE_SETENV 1" >>confdefs.h
+ else case e in #(
+   e) no_setenv=1  ;;
+@@ -11343,7 +11570,7 @@ if test "$no_setenv" = "1" ; then
+ if test "x$ac_cv_func_putenv" = xyes
+ then :
+-printf "%s\n" "#define HAVE_PUTENV 1" >>confdefs.h
++printf '%s\n' "#define HAVE_PUTENV 1" >>confdefs.h
+ fi
+@@ -11354,45 +11581,45 @@ ac_fn_c_check_func "$LINENO" "_cleanup"
+ if test "x$ac_cv_func__cleanup" = xyes
+ then :
+-printf "%s\n" "#define USE_CLEANUP 1" >>confdefs.h
++printf '%s\n' "#define USE_CLEANUP 1" >>confdefs.h
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
+ printf %s "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... " >&6; }
+ case $system in
+     OSF*)
+-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h
++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
+-printf "%s\n" "FIONBIO" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
++printf '%s\n' "FIONBIO" >&6; }
+       ;;
+     SunOS-4*)
+-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h
++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
+-printf "%s\n" "FIONBIO" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
++printf '%s\n' "FIONBIO" >&6; }
+       ;;
+     ULTRIX-4.*)
+-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h
++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
+-printf "%s\n" "FIONBIO" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5
++printf '%s\n' "FIONBIO" >&6; }
+       ;;
+     *)
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: O_NONBLOCK" >&5
+-printf "%s\n" "O_NONBLOCK" >&6; }
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: O_NONBLOCK" >&5
++printf '%s\n' "O_NONBLOCK" >&6; }
+       ;;
+ esac
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SV_ONSTACK" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SV_ONSTACK" >&5
+ printf %s "checking check for SV_ONSTACK... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11411,19 +11638,19 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_SV_ONSTACK 1" >>confdefs.h
++printf '%s\n' "#define HAVE_SV_ONSTACK 1" >>confdefs.h
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SIGSYS" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SIGSYS" >&5
+ printf %s "checking check for SIGSYS... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11442,20 +11669,20 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_SIGSYS 1" >>confdefs.h
++printf '%s\n' "#define HAVE_SIGSYS 1" >>confdefs.h
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SIGEMT" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SIGEMT" >&5
+ printf %s "checking check for SIGEMT... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+@@ -11474,14 +11701,14 @@ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+ then :
+-printf "%s\n" "#define HAVE_SIGEMT 1" >>confdefs.h
++printf '%s\n' "#define HAVE_SIGEMT 1" >>confdefs.h
+-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+-printf "%s\n" "yes" >&6; }
++     { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
+ else case e in #(
+-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; } ;;
++  e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; } ;;
+ esac
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+@@ -11489,14 +11716,14 @@ rm -f core conftest.err conftest.$ac_obj
+ ac_fn_c_check_func "$LINENO" "sigaltstack" "ac_cv_func_sigaltstack"
+ if test "x$ac_cv_func_sigaltstack" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_SIGALTSTACK 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_SIGALTSTACK 1" >>confdefs.h
+ fi
+ ac_fn_c_check_func "$LINENO" "feenableexcept" "ac_cv_func_feenableexcept"
+ if test "x$ac_cv_func_feenableexcept" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h
+ fi
+@@ -11506,7 +11733,7 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "dis-asm.h" "ac_cv_header_dis_asm_h" "$ac_includes_default"
+ if test "x$ac_cv_header_dis_asm_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_DIS_ASM_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_DIS_ASM_H 1" >>confdefs.h
+  MLIBS=$LIBS
+ # ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+@@ -11516,7 +11743,7 @@ then :
+ ac_fn_c_check_type ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ printf %s "checking for $2... " >&6; }
+ if eval test \${$3+y}
+ then :
+@@ -11562,8 +11789,8 @@ rm -f core conftest.err conftest.$ac_obj
+ esac
+ fi
+ eval ac_res=\$$3
+-             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-printf "%s\n" "$ac_res" >&6; }
++             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf '%s\n' "$ac_res" >&6; }
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ } # ac_fn_c_check_type
+@@ -11572,12 +11799,12 @@ ac_fn_c_check_type "$LINENO" "fprintf_st
+ if test "x$ac_cv_type_fprintf_styled_ftype" = xyes
+ then :
+-printf "%s\n" "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h
++printf '%s\n' "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h
+ fi
+-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5
++               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5
+ printf %s "checking for init_disassemble_info in -lopcodes... " >&6; }
+ if test ${ac_cv_lib_opcodes_init_disassemble_info+y}
+ then :
+@@ -11618,17 +11845,17 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_opcodes_init_disassemble_info" >&5
+-printf "%s\n" "$ac_cv_lib_opcodes_init_disassemble_info" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_opcodes_init_disassemble_info" >&5
++printf '%s\n' "$ac_cv_lib_opcodes_init_disassemble_info" >&6; }
+ if test "x$ac_cv_lib_opcodes_init_disassemble_info" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_LIBOPCODES 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_LIBOPCODES 1" >>confdefs.h
+   LIBS="-lopcodes $LIBS"
+ fi
+-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
++               { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+ printf %s "checking for dlopen in -ldl... " >&6; }
+ if test ${ac_cv_lib_dl_dlopen+y}
+ then :
+@@ -11669,8 +11896,8 @@ rm -f core conftest.err conftest.$ac_obj
+ LIBS=$ac_check_lib_save_LIBS ;;
+ esac
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
++printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; }
+ if test "x$ac_cv_lib_dl_dlopen" = xyes
+ then :
+   #opcodes changes too quickly to link directly
+@@ -11680,7 +11907,7 @@ do :
+   ac_fn_c_check_func "$LINENO" "print_insn_i386" "ac_cv_func_print_insn_i386"
+ if test "x$ac_cv_func_print_insn_i386" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_PRINT_INSN_I386 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_PRINT_INSN_I386 1" >>confdefs.h
+  LIBS="$MLIBS -ldl"
+ fi
+@@ -11717,7 +11944,7 @@ if test "$enable_tcltk" != "no" ; then
+       # Extract the first word of "tclsh", so it can be a program name with args.
+ set dummy tclsh; ac_word=$2
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ printf %s "checking for $ac_word... " >&6; }
+ if test ${ac_cv_prog_TCLSH+y}
+ then :
+@@ -11738,7 +11965,7 @@ do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+     ac_cv_prog_TCLSH="tclsh"
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+@@ -11751,11 +11978,11 @@ esac
+ fi
+ TCLSH=$ac_cv_prog_TCLSH
+ if test -n "$TCLSH"; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TCLSH" >&5
+-printf "%s\n" "$TCLSH" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $TCLSH" >&5
++printf '%s\n' "$TCLSH" >&6; }
+ else
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-printf "%s\n" "no" >&6; }
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
+ fi
+@@ -11827,11 +12054,11 @@ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tcl/tk" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tcl/tk" >&5
+ printf %s "checking for tcl/tk... " >&6; }
+ if test -d "${TK_CONFIG_PREFIX}" ; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&5
+-printf "%s\n" "using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&5
++printf '%s\n' "using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&6; }
+@@ -11843,8 +12070,8 @@ printf "%s\n" "using TK_VERSION=${TK_VER
+     ac_config_files="$ac_config_files gcl-tk/gcltksrv"
+ else
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+-printf "%s\n" "not found" >&6; }
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++printf '%s\n' "not found" >&6; }
+ fi
+@@ -11857,11 +12084,11 @@ do :
+   ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+ if test "x$ac_cv_header_sys_mman_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
+  ac_fn_c_check_func "$LINENO" "mprotect" "ac_cv_func_mprotect"
+ if test "x$ac_cv_func_mprotect" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_MPROTECT 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_MPROTECT 1" >>confdefs.h
+ fi
+@@ -11871,7 +12098,7 @@ done
+ ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "$ac_includes_default"
+ if test "x$ac_cv_header_alloca_h" = xyes
+ then :
+-  printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
++  printf '%s\n' "#define HAVE_ALLOCA_H 1" >>confdefs.h
+ fi
+@@ -11951,44 +12178,7 @@ if test "$use" != ""  ; then
+ _ACEOF
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, we kill variables containing newlines.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-(
+-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+-    eval ac_val=\$$ac_var
+-    case $ac_val in #(
+-    *${as_nl}*)
+-      case $ac_var in #(
+-      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+-      esac
+-      case $ac_var in #(
+-      _ | IFS | as_nl) ;; #(
+-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+-      *) { eval $ac_var=; unset $ac_var;} ;;
+-      esac ;;
+-    esac
+-  done
+-
+-  (set) 2>&1 |
+-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+-    *${as_nl}ac_space=\ *)
+-      # 'set' does not quote correctly, so add quotes: double-quote
+-      # substitution turns \\\\ into \\, and sed turns \\ into \.
+-      sed -n \
+-      "s/'/'\\\\''/g;
+-        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+-      ;; #(
+-    *)
+-      # 'set' quotes correctly as required by POSIX, so do not add quotes.
+-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+-      ;;
+-    esac |
+-    sort
+-) |
++ac_cache_dump |
+   sed '
+      /^ac_cv_env_/b end
+      t clear
+@@ -12000,8 +12190,8 @@ printf "%s\n" "$as_me: WARNING: cache va
+ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+   if test -w "$cache_file"; then
+     if test "x$cache_file" != "x/dev/null"; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
++printf '%s\n' "$as_me: updating cache $cache_file" >&6;}
+       if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+       else
+@@ -12015,8 +12205,8 @@ printf "%s\n" "$as_me: updating cache $c
+       fi
+     fi
+   else
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
++    { printf '%s\n' "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
++printf '%s\n' "$as_me: not updating unwritable cache $cache_file" >&6;}
+   fi
+ fi
+ rm -f confcache
+@@ -12033,7 +12223,7 @@ U=
+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+   # 1. Remove the extension, and $U if already installed.
+   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+-  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
++  ac_i=`printf '%s\n' "$ac_i" | sed "$ac_script"`
+   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+   #    will be set to the directory where LIBOBJS objects are built.
+   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+@@ -12044,14 +12234,14 @@ LIBOBJS=$ac_libobjs
+ LTLIBOBJS=$ac_ltlibobjs
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+ printf %s "checking that generated files are newer than configure... " >&6; }
+    if test -n "$am_sleep_pid"; then
+      # Hide warnings about reused PIDs.
+      wait $am_sleep_pid 2>/dev/null
+    fi
+-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
+-printf "%s\n" "done" >&6; }
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: done" >&5
++printf '%s\n' "done" >&6; }
+ case $enable_silent_rules in # (((
+   yes) AM_DEFAULT_VERBOSITY=0;;
+    no) AM_DEFAULT_VERBOSITY=1;;
+@@ -12102,13 +12292,21 @@ Usually this means the macro was only in
+ fi
+ : "${CONFIG_STATUS=./config.status}"
++case $CONFIG_STATUS in #(
++  -*) :
++    CONFIG_STATUS=./$CONFIG_STATUS ;; #(
++  */*) :
++     ;; #(
++  *) :
++    CONFIG_STATUS=./$CONFIG_STATUS ;;
++esac
++
+ ac_write_fail=0
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
++ac_clean_CONFIG_STATUS='"$CONFIG_STATUS"'
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
++printf '%s\n' "$as_me: creating $CONFIG_STATUS" >&6;}
+ as_write_fail=0
+-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
++cat >"$CONFIG_STATUS" <<_ASEOF || as_write_fail=1
+ #! $SHELL
+ # Generated by $as_me.
+ # Run this file to recreate the current configuration.
+@@ -12122,7 +12320,7 @@ ac_cs_silent=false
+ SHELL=\${CONFIG_SHELL-$SHELL}
+ export SHELL
+ _ASEOF
+-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ASEOF || as_write_fail=1
+ ## -------------------- ##
+ ## M4sh Initialization. ##
+ ## -------------------- ##
+@@ -12134,7 +12332,7 @@ then :
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
++  # contradicts POSIX and common usage.  Disable this.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else case e in #(
+@@ -12221,7 +12419,7 @@ if test "x$as_myself" = x; then
+   as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+-  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
++  printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+   exit 1
+ fi
+@@ -12237,9 +12435,9 @@ as_fn_error ()
+   as_status=$1; test $as_status -eq 0 && as_status=1
+   if test "$4"; then
+     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
++    printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+   fi
+-  printf "%s\n" "$as_me: error: $2" >&2
++  printf '%s\n' "$as_me: error: $2" >&2
+   as_fn_exit $as_status
+ } # as_fn_error
+@@ -12334,7 +12532,7 @@ as_me=`$as_basename -- "$0" ||
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X/"$0" |
++printf '%s\n' X/"$0" |
+     sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+@@ -12356,29 +12554,6 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTE
+ as_cr_digits='0123456789'
+ as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# Determine whether it's possible to make 'echo' print without a newline.
+-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+-# for compatibility with existing Makefiles.
+-ECHO_C= ECHO_N= ECHO_T=
+-case `echo -n x` in #(((((
+--n*)
+-  case `echo 'xy\c'` in
+-  *c*) ECHO_T='       ';;     # ECHO_T is single tab character.
+-  xy)  ECHO_C='\c';;
+-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+-       ECHO_T='       ';;
+-  esac;;
+-*)
+-  ECHO_N='-n';;
+-esac
+-
+-# For backward compatibility with old third-party macros, we provide
+-# the shell variables $as_echo and $as_echo_n.  New code should use
+-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+-as_echo='printf %s\n'
+-as_echo_n='printf %s'
+-
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+   rm -f conf$$.dir/conf$$.file
+@@ -12420,7 +12595,7 @@ as_fn_mkdir_p ()
+     as_dirs=
+     while :; do
+       case $as_dir in #(
+-      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
++      *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+       *) as_qdir=$as_dir;;
+       esac
+       as_dirs="'$as_qdir' $as_dirs"
+@@ -12429,7 +12604,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$as_dir" |
++printf '%s\n' X"$as_dir" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -12482,19 +12657,19 @@ as_tr_sh="eval sed '$as_sed_sh'" # depre
+ exec 6>&1
+-## ----------------------------------- ##
+-## Main body of $CONFIG_STATUS script. ##
+-## ----------------------------------- ##
++## ------------------------------------- ##
++## Main body of "$CONFIG_STATUS" script. ##
++## ------------------------------------- ##
+ _ASEOF
+-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
++test $as_write_fail = 0 && chmod +x "$CONFIG_STATUS" || ac_write_fail=1
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ # Save the log message, to keep $0 and so on meaningful, and to
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+ This file was extended by gcl $as_me 2.7.1, which was
+-generated by GNU Autoconf 2.72.  Invocation command line was
++generated by GNU Autoconf 2.73.  Invocation command line was
+   CONFIG_FILES    = $CONFIG_FILES
+   CONFIG_HEADERS  = $CONFIG_HEADERS
+@@ -12516,7 +12691,7 @@ case $ac_config_headers in *"
+ esac
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ # Files that config.status was made for.
+ config_files="$ac_config_files"
+ config_headers="$ac_config_headers"
+@@ -12524,7 +12699,7 @@ config_commands="$ac_config_commands"
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ ac_cs_usage="\
+ '$as_me' instantiates files and other configuration actions
+ from templates according to the current configuration.  Unless the files
+@@ -12556,16 +12731,16 @@ $config_commands
+ Report bugs to the package provider."
+ _ACEOF
+-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++ac_cs_config=`printf '%s\n' "$ac_configure_args" | sed "$ac_safe_unquote"`
++ac_cs_config_escaped=`printf '%s\n' "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ ac_cs_config='$ac_cs_config_escaped'
+ ac_cs_version="\\
+ gcl config.status 2.7.1
+-configured by $0, generated by GNU Autoconf 2.72,
++configured by $0, generated by GNU Autoconf 2.73,
+   with options \\"\$ac_cs_config\\"
+-Copyright (C) 2023 Free Software Foundation, Inc.
++Copyright (C) 2026 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+@@ -12574,10 +12749,14 @@ srcdir='$srcdir'
+ INSTALL='$INSTALL'
+ MKDIR_P='$MKDIR_P'
+ AWK='$AWK'
+-test -n "\$AWK" || AWK=awk
++test -n "\$AWK" || {
++  awk '' </dev/null ||
++    as_fn_error \$? "try installing gawk"
++  AWK=awk
++}
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ # The default lists apply if the user does not specify any file.
+ ac_need_defaults=:
+ while test $# != 0
+@@ -12605,15 +12784,15 @@ do
+   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+     ac_cs_recheck=: ;;
+   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+-    printf "%s\n" "$ac_cs_version"; exit ;;
++    printf '%s\n' "$ac_cs_version"; exit ;;
+   --config | --confi | --conf | --con | --co | --c )
+-    printf "%s\n" "$ac_cs_config"; exit ;;
++    printf '%s\n' "$ac_cs_config"; exit ;;
+   --debug | --debu | --deb | --de | --d | -d )
+     debug=: ;;
+   --file | --fil | --fi | --f )
+     $ac_shift
+     case $ac_optarg in
+-    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     '') as_fn_error $? "missing file argument" ;;
+     esac
+     as_fn_append CONFIG_FILES " '$ac_optarg'"
+@@ -12621,7 +12800,7 @@ do
+   --header | --heade | --head | --hea )
+     $ac_shift
+     case $ac_optarg in
+-    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     esac
+     as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+     ac_need_defaults=false;;
+@@ -12630,7 +12809,7 @@ do
+     as_fn_error $? "ambiguous option: '$1'
+ Try '$0 --help' for more information.";;
+   --help | --hel | -h )
+-    printf "%s\n" "$ac_cs_usage"; exit ;;
++    printf '%s\n' "$ac_cs_usage"; exit ;;
+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+   | -silent | --silent | --silen | --sile | --sil | --si | --s)
+     ac_cs_silent=: ;;
+@@ -12654,29 +12833,29 @@ if $ac_cs_silent; then
+ fi
+ _ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ if \$ac_cs_recheck; then
+   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+   shift
+-  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
++  \printf '%s\n' "running CONFIG_SHELL=$SHELL \$*" >&6
+   CONFIG_SHELL='$SHELL'
+   export CONFIG_SHELL
+   exec "\$@"
+ fi
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ exec 5>>config.log
+ {
+   echo
+   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+ ## Running $as_me. ##
+ _ASBOX
+-  printf "%s\n" "$ac_log"
++  printf '%s\n' "$ac_log"
+ } >&5
+ _ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ #
+ # INIT-COMMANDS
+ #
+@@ -12684,7 +12863,7 @@ AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-ma
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ # Handling of arguments.
+ for ac_config_target in $ac_config_targets
+@@ -12769,13 +12948,13 @@ _ACEOF
+   echo "_ACEOF"
+ } >conf$$subs.sh ||
+   as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
++ac_delim_num=`echo "$ac_subst_vars" | sed -n '$='`
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+   . ./conf$$subs.sh ||
+     as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
++  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | sed -n '$='`
+   if test $ac_delim_n = $ac_delim_num; then
+     break
+   elif $ac_last_try; then
+@@ -12786,7 +12965,7 @@ for ac_last_try in false false false fal
+ done
+ rm -f conf$$subs.sh
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+ _ACEOF
+ sed -n '
+@@ -12831,9 +13010,9 @@ t delim
+   N
+   s/\n//
+ }
+-' >>$CONFIG_STATUS || ac_write_fail=1
++' >>"$CONFIG_STATUS" || ac_write_fail=1
+ rm -f conf$$subs.awk
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ _ACAWK
+ cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+   for (key in S) S_is_set[key] = 1
+@@ -12862,7 +13041,7 @@ cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ _ACAWK
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+ else
+@@ -12894,7 +13073,7 @@ s/^[^=]*=[      ]*$//
+ }'
+ fi
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ fi # test -n "$CONFIG_FILES"
+ # Set up the scripts for CONFIG_HEADERS section.
+@@ -12965,9 +13144,9 @@ s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+ b cont
+ ' <confdefs.h | sed '
+ s/'"$ac_delim"'/"\\\
+-"/g' >>$CONFIG_STATUS || ac_write_fail=1
++"/g' >>"$CONFIG_STATUS" || ac_write_fail=1
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+   for (key in D) D_is_set[key] = 1
+   FS = "\a"
+ }
+@@ -12985,8 +13164,12 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
+   macro = mac2[1]
+   prefix = substr(line, 1, index(line, defundef) - 1)
+   if (D_is_set[macro]) {
++    suffix = P[macro] D[macro]
++    while (suffix ~ /[\t ]$/) {
++      suffix = substr(suffix, 1, length(suffix) - 1)
++    }
+     # Preserve the white space surrounding the "#".
+-    print prefix "define", macro P[macro] D[macro]
++    print prefix "define", macro suffix
+     next
+   } else {
+     # Replace #undef with comments.  This is necessary, for example,
+@@ -13001,7 +13184,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
+ { print }
+ _ACAWK
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+   as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+ fi # test -n "$CONFIG_HEADERS"
+@@ -13045,7 +13228,7 @@ do
+          esac ||
+          as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
+       esac
+-      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
++      case $ac_f in *\'*) ac_f=`printf '%s\n' "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+       as_fn_append ac_file_inputs " '$ac_f'"
+     done
+@@ -13053,17 +13236,17 @@ do
+     # use $as_me), people would be surprised to read:
+     #    /* config.h.  Generated by config.status.  */
+     configure_input='Generated from '`
+-        printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
++        printf '%s\n' "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+       `' by configure.'
+     if test x"$ac_file" != x-; then
+       configure_input="$ac_file.  $configure_input"
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+-printf "%s\n" "$as_me: creating $ac_file" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
++printf '%s\n' "$as_me: creating $ac_file" >&6;}
+     fi
+     # Neutralize special characters interpreted by sed in replacement strings.
+     case $configure_input in #(
+     *\&* | *\|* | *\\* )
+-       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
++       ac_sed_conf_input=`printf '%s\n' "$configure_input" |
+        sed 's/[\\\\&|]/\\\\&/g'`;; #(
+     *) ac_sed_conf_input=$configure_input;;
+     esac
+@@ -13080,7 +13263,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^
+        X"$ac_file" : 'X\(//\)[^/]' \| \
+        X"$ac_file" : 'X\(//\)$' \| \
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$ac_file" |
++printf '%s\n' X"$ac_file" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -13104,9 +13287,9 @@ printf "%s\n" X"$ac_file" |
+ case "$ac_dir" in
+ .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *)
+-  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
++  ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'`
+   # A ".." for each directory in $ac_dir_suffix.
+-  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
++  ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+   case $ac_top_builddir_sub in
+   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+@@ -13151,7 +13334,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_
+   esac
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ # If the template does not know about datarootdir, expand it.
+ # FIXME: This hack should be removed a few years after 2.60.
+ ac_datarootdir_hack=; ac_datarootdir_seen=
+@@ -13168,10 +13351,10 @@ ac_sed_dataroot='
+ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+ *datarootdir*) ac_datarootdir_seen=yes;;
+ *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
++printf '%s\n' "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ _ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+   ac_datarootdir_hack='
+   s&@datadir@&$datadir&g
+   s&@docdir@&$docdir&g
+@@ -13185,11 +13368,11 @@ _ACEOF
+ # Neutralize VPATH when '$srcdir' = '.'.
+ # Shell code in configure.ac might set extrasub.
+ # FIXME: do we really want to maintain this feature?
+-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
+ ac_sed_extra="$ac_vpsub
+ $extrasub
+ _ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
+ :t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+ s|@configure_input@|$ac_sed_conf_input|;t t
+@@ -13213,9 +13396,9 @@ test -z "$ac_datarootdir_hack$ac_dataroo
+   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+   { ac_out=`sed -n '/^[        ]*datarootdir[  ]*:*=/p' \
+       "$ac_tmp/out"`; test -z "$ac_out"; } &&
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+ which seems to be undefined.  Please make sure it is defined" >&5
+-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
++printf '%s\n' "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+ which seems to be undefined.  Please make sure it is defined" >&2;}
+   rm -f "$ac_tmp/stdin"
+@@ -13231,20 +13414,20 @@ which seems to be undefined.  Please mak
+   #
+   if test x"$ac_file" != x-; then
+     {
+-      printf "%s\n" "/* $configure_input  */" >&1 \
++      printf '%s\n' "/* $configure_input  */" >&1 \
+       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+     } >"$ac_tmp/config.h" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+     if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
++      { printf '%s\n' "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
++printf '%s\n' "$as_me: $ac_file is unchanged" >&6;}
+     else
+       rm -f "$ac_file"
+       mv "$ac_tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+     fi
+   else
+-    printf "%s\n" "/* $configure_input  */" >&1 \
++    printf '%s\n' "/* $configure_input  */" >&1 \
+       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+       || as_fn_error $? "could not create -" "$LINENO" 5
+   fi
+@@ -13264,7 +13447,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^
+        X"$_am_arg" : 'X\(//\)[^/]' \| \
+        X"$_am_arg" : 'X\(//\)$' \| \
+        X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$_am_arg" |
++printf '%s\n' X"$_am_arg" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -13284,8 +13467,8 @@ printf "%s\n" X"$_am_arg" |
+         s/.*/./; q'`/stamp-h$_am_stamp_count
+  ;;
+-  :C)  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+-printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
++  :C)  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
++printf '%s\n' "$as_me: executing $ac_file commands" >&6;}
+  ;;
+   esac
+@@ -13311,7 +13494,7 @@ esac
+   for am_mf
+   do
+     # Strip MF so we end up with the name of the file.
+-    am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
++    am_mf=`printf '%s\n' "$am_mf" | sed -e 's/:.*$//'`
+     # Check whether this is an Automake generated Makefile which includes
+     # dependency-tracking related rules and includes.
+     # Grep'ing the whole file directly is not great: AIX grep has a line
+@@ -13323,7 +13506,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/]
+        X"$am_mf" : 'X\(//\)[^/]' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X"$am_mf" |
++printf '%s\n' X"$am_mf" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+@@ -13345,7 +13528,7 @@ printf "%s\n" X"$am_mf" |
+ $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+-printf "%s\n" X/"$am_mf" |
++printf '%s\n' X/"$am_mf" |
+     sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+@@ -13370,8 +13553,8 @@ printf "%s\n" X/"$am_mf" |
+    (exit $ac_status); } || am_rc=$?
+   done
+   if test $am_rc -ne 0; then
+-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
++    { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ as_fn_error $? "Something went wrong bootstrapping makefile fragments
+     for automatic dependency tracking.  If GNU make was not used, consider
+     re-running the configure script with MAKE=\"gmake\" (or whatever is
+@@ -13394,7 +13577,7 @@ done # for ac_tag
+ as_fn_exit 0
+ _ACEOF
+-ac_clean_files=$ac_clean_files_save
++ac_clean_CONFIG_STATUS=
+ test $ac_write_fail = 0 ||
+   as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+@@ -13410,19 +13593,26 @@ test $ac_write_fail = 0 ||
+ # need to make the FD available again.
+ if test "$no_create" != yes; then
+   ac_cs_success=:
++  case $CONFIG_STATUS in #(
++  -*) :
++    ac_no_opts=-- ;; #(
++  *) :
++    ac_no_opts= ;;
++esac
+   ac_config_status_args=
+   test "$silent" = yes &&
+     ac_config_status_args="$ac_config_status_args --quiet"
+   exec 5>/dev/null
+-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
++  $SHELL $ac_no_opts "$CONFIG_STATUS" $ac_config_status_args ||
++    ac_cs_success=false
+   exec 5>>config.log
+   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+   # would make configure fail if this is the last instruction.
+   $ac_cs_success || as_fn_exit 1
+ fi
+ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
++  { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
++printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ fi
+     cmp $srcdir/h/$use.h h/config.h || cp $srcdir/h/$use.h h/config.h
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -833,26 +833,17 @@ AC_RUN_IFELSE(
+      AC_DEFINE(HAVE_CTZL,[1],[ctzl instruction])],
+     [AC_MSG_RESULT([no])])
+-
+-case $use in
+-#    sh4*) ;;     #FIXME, these exceptions needed as of gcc 4.7
+-#    hppa*) ;;    #FIXME
+-#    powerpc*) ;; #FIXME
+-#    alpha*) ;;   #FIXME
+-    ia64*) ;;    #FIXME
+-    *)
+-      AC_MSG_CHECKING([__builtin___clear_cache])
+-      AC_RUN_IFELSE(
+-          [AC_LANG_PROGRAM(
+-                  [[]],
+-                  [[
+-                      char v[1<<12];
+-                      __builtin___clear_cache(v,v+sizeof(v));
+-                  ]])],
+-          [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction])
+-           AC_MSG_RESULT(yes)],
+-          AC_MSG_RESULT(no));;
+-esac
++AC_MSG_CHECKING([__builtin___clear_cache])
++AC_RUN_IFELSE(
++    [AC_LANG_PROGRAM(
++          [[]],
++          [[
++              char v[1<<12];
++              __builtin___clear_cache(v,v+sizeof(v));
++          ]])],
++    [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction])
++     AC_MSG_RESULT(yes)],
++    AC_MSG_RESULT(no))
+ #AC_CONFIG_SUBDIRS($MY_SUBDIRS)
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre24"
++"Version_2_7_2pre25"
+--- gcl27-2.7.1.orig/h/gclincl.h.in
++++ gcl27-2.7.1/h/gclincl.h.in
+@@ -357,6 +357,10 @@
+ #ifndef _ALL_SOURCE
+ # undef _ALL_SOURCE
+ #endif
++/* Enable extensions on Cosmopolitan Libc. */
++#ifndef _COSMO_SOURCE
++# undef _COSMO_SOURCE
++#endif
+ /* Enable general extensions on macOS.  */
+ #ifndef _DARWIN_C_SOURCE
+ # undef _DARWIN_C_SOURCE
+--- gcl27-2.7.1.orig/h/hppa-linux.h
++++ gcl27-2.7.1/h/hppa-linux.h
+@@ -3,17 +3,17 @@
+ #define SGC
+ #define STATIC_FUNCTION_POINTERS
+-/* #ifdef IN_SFASL */
+-/* #include <sys/mman.h> */
+-/* #define CLEAR_CACHE_LINE_SIZE 32 */
+-/* #define CLEAR_CACHE {\ */
+-/*    void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size;  \ */
+-/*    v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */
+-/*    for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fdc 0(%0)" : : "r" (v) : "memory");\ */
+-/*    asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");\ */
+-/*    for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fic 0(%%sr4,%0)" : : "r" (v) : "memory");\ */
+-/*    asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");} */
+-/* #endif */
++#ifdef IN_SFASL
++#include <sys/mman.h>
++#define CLEAR_CACHE_LINE_SIZE 32
++#define CLEAR_CACHE {\
++   void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size;     \
++   v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\
++   for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fdc 0(%0)" : : "r" (v) : "memory");\
++   asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");\
++   for (v=v1;v<ve;v+=CLEAR_CACHE_LINE_SIZE) asm __volatile__ ("fic 0(%%sr4,%0)" : : "r" (v) : "memory");\
++   asm __volatile__ ("syncdma\n\tsync" : : "r" (v) : "memory");}
++#endif
+ #define RELOC_H "elf32_hppa_reloc.h"
+ #define SPECIAL_RELOC_H "elf32_hppa_reloc_special.h"
+--- gcl27-2.7.1.orig/h/powerpc-linux.h
++++ gcl27-2.7.1/h/powerpc-linux.h
+@@ -2,14 +2,13 @@
+ #define SGC
+-/* #define CLEAR_CACHE_LINE_SIZE 32 */
+-/* #define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */
+-/*                         v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */
+-/*                         for (;v<ve;v+=CLEAR_CACHE_LINE_SIZE) \ */
+-/*                            asm __volatile__ ("dcbst 0,%0\n\tsync\n\ticbi 0,%0\n\tsync\n\tisync": : "r" (v) : "memory");\ */
+-/*                         } while(0) */
+-
+ #if SIZEOF_LONG == 4
++#define CLEAR_CACHE_LINE_SIZE 32
++#define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \
++                        v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\
++                        for (;v<ve;v+=CLEAR_CACHE_LINE_SIZE) \
++                           asm __volatile__ ("dcbst 0,%0\n\tsync\n\ticbi 0,%0\n\tsync\n\tisync": : "r" (v) : "memory");\
++                        } while(0)
+ #define RELOC_H "elf32_ppc_reloc.h"
+ #define OUTPUT_MACH bfd_mach_ppc
+ #else
+--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp
++++ gcl27-2.7.1/lsp/gcl_fpe.lsp
+@@ -127,6 +127,7 @@
+ (defun fe-enable (a)
+   (declare (fixnum a))
+   (fedisableexcept)
++  (feclearexcept -1)
+   (feenableexcept a))
+--- gcl27-2.7.1.orig/lsp/gcl_mislib.lsp
++++ gcl27-2.7.1/lsp/gcl_mislib.lsp
+@@ -100,8 +100,8 @@
+   (check-type y (integer 1899))
+   (check-type tz rational)
+   (cond ((eql 1899 y)
+-       (assert (and (eql h 23) (eql d 31) (eql m 12)))
+-       (+ s (* n 60) tzo))
++       (assert (and tzp (>= (+ h tz) 24) (eql d 31) (eql m 12)))
++       (+ s (* n 60) (* 3600 (+ h tz -24))))
+       ((+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ tzo))))
+ (defun get-decoded-time ()
+--- gcl27-2.7.1.orig/o/sfaslmacho.c
++++ gcl27-2.7.1/o/sfaslmacho.c
+@@ -458,6 +458,26 @@ relocate_code(void *v1,struct section *s
+ }
++static char *
++dup_sym(char *src) {
++  static char buf[256];
++  const char *e="$DARWIN_EXTSN";
++  char *c;
++
++  if ((c=strstr(src,e))) {
++    memcpy(buf,src,(c-src));
++    buf[c-src]=0;
++    printf("dup %s -> %s\n",src,buf);
++    return buf;
++  }
++  if (!strcmp(src,"_my_free")||!strcmp(src,"_my_calloc")||!strcmp(src,"_my_malloc")||!strcmp(src,"_my_realloc")) {
++    strcpy(buf,src+3);
++    printf("dup %s -> %s\n",src,buf);
++    return buf;
++  }
++  return NULL;
++}
++
+ static int 
+ load_self_symbols() {
+@@ -465,7 +485,7 @@ load_self_symbols() {
+   struct nlist *sym1=NULL,*sym,*syme=NULL;
+   struct node *a;
+   ul ns,sl,*uio=NULL;
+-  char *strtab=NULL,*ste,*s;
++  char *strtab=NULL,*ste,*s,*c;
+   void *addr,*addre;
+   FILE *f;
+   
+@@ -484,6 +504,11 @@ load_self_symbols() {
+     ns++;
+     sl+=strlen(sym->n_un.n_strx+strtab)+1;
++    if ((c=dup_sym(strtab+sym->n_un.n_strx))) {
++      ns++;
++      sl+=strlen(c)+1;
++    }
++
+   }
+   
+   c_table.alloc_length=ns;
+@@ -502,6 +527,17 @@ load_self_symbols() {
+     a++;
+     s+=strlen(s)+1;
++    if ((c=dup_sym(strtab+sym->n_un.n_strx))) {
++
++      a->address=sym->n_value;
++      a->string=s;
++      strcpy(s,c);
++
++      a++;
++      s+=strlen(s)+1;
++
++    }
++
+   }
+   c_table.length=a-c_table.ptable;
+   qsort(c_table.ptable,c_table.length,sizeof(*c_table.ptable),node_compare);
+--- gcl27-2.7.1.orig/o/usig.c
++++ gcl27-2.7.1/o/usig.c
+@@ -191,14 +191,14 @@ DEFUN("FEDISABLEEXCEPT",object,fSfedisab
+ #ifdef HAVE_FEENABLEEXCEPT
+-  feclearexcept(FE_ALL_EXCEPT);
++  /* feclearexcept(FE_ALL_EXCEPT); */
+   x=fedisableexcept(FE_ALL_EXCEPT);
+ #elif defined(__x86_64__) || defined(__i386__)
+ #define ASM __asm__ __volatile__
+   {
+     volatile unsigned int i=0;
+-    ASM("fnclex");
++    /* ASM("fnclex"); */
+     ASM("stmxcsr %0" :: "m" (i));
+     i=(i|(FE_ALL_EXCEPT<<7));
+     ASM("ldmxcsr %0" : "=m" (i));
diff --git a/debian/patches/Version_2_7_2pre26 b/debian/patches/Version_2_7_2pre26
new file mode 100644 (file)
index 0000000..54ade1c
--- /dev/null
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: May, 27 2026 18:03:02 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -467,7 +467,7 @@ CLEANFILES+=h/cmpinclude.h h/mstdint.h h
+ h/mstdint.h:
+       echo "#include <stdint.h>" | \
+               $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+-              grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@
++              grep -E 'typedef .*u?int(8|16|32|64|128)_t;' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4765,7 +4765,7 @@ ansi_gcl/%.o: clcs/%.lisp | unixport/ans
+ h/mstdint.h:
+       echo "#include <stdint.h>" | \
+               $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+-              grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@
++              grep -E 'typedef .*u?int(8|16|32|64|128)_t;' >$@
+ h/mcompdefs.h: h/compdefs.h h/new_decl.h
+       $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre25"
++"Version_2_7_2pre26"
diff --git a/debian/patches/Version_2_7_2pre27 b/debian/patches/Version_2_7_2pre27
new file mode 100644 (file)
index 0000000..da5e6b1
--- /dev/null
@@ -0,0 +1,1100 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 15 2026 20:43:44 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpenv.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpenv.lsp
+@@ -258,7 +258,12 @@
+      (local-fun-fn fname)
+      (get fname 'cmp-inline)
+      (member (symbol-package fname)
+-           (load-time-value (mapcar #'symbol-package (list 'c-t-tt (mdlsym "sin") (mdlsym "memmove"))))))))
++           (load-time-value
++            (remove-duplicates
++             (mapcar #'symbol-package
++                     (list 'c-t-tt
++                           (mdlsym "fabs");FOXME dladdr macos unreliable, need core mdl in raw images
++                           (mdlsym "sin") (mdlsym "memmove")))))))))
+ ;; (defun inline-asserted (fname)
+ ;;   (unless *compiler-push-events*
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre26"
++"Version_2_7_2pre27"
+--- gcl27-2.7.1.orig/h/386-macosx.h
++++ gcl27-2.7.1/h/386-macosx.h
+@@ -20,11 +20,6 @@
+ #undef HAVE_AOUT
+ #undef HAVE_ELF
+-
+-/* Alternatively, we could use the global variable vm_page_size.  */
+-#define PAGEWIDTH 12
+-
+-
+ #include <unistd.h> /* to get sbrk defined */
+@@ -107,18 +102,17 @@ do {int c=0;
+ #define GET_FULL_PATH_SELF(a_)                              \
+ do {                                                        \
+-extern int _NSGetExecutablePath (char *, unsigned long *);  \
+-unsigned long bufsize = 1024;                               \
+-static char buf [1024];                                     \
+-static char fub [1024];                                     \
+-if (_NSGetExecutablePath (buf, &bufsize) != 0) {            \
++  uint32_t bufsize = 1024;                                \
++  static char buf [1024];                                 \
++  static char fub [1024];                                 \
++  if (_NSGetExecutablePath (buf, &bufsize) != 0) {        \
+     error ("_NSGetExecutablePath failed");                  \
+-}                                                           \
+-if (realpath (buf, fub) == 0) {                             \
++  }                                                       \
++  if (realpath (buf, fub) == 0) {                         \
+     error ("realpath failed");                              \
+-}                                                           \
+-(a_) = fub;                                                 \
+-} while (0)
++  }                                                       \
++  (a_) = fub;                                             \
++ } while (0)
+ #ifdef _LP64
+ #define C_GC_OFFSET 4
+@@ -155,7 +149,7 @@ if (realpath (buf, fub) == 0) {
+                                    REG_LIST(8,MCF(__fpu_stmm0)),REG_LIST(16,MCF(__fpu_xmm0)));})
+-#include <sys/param.h>/*PATH_MAX MAXPATHLEN*/
++#include <sys/param.h>
+ #undef MIN
+ #undef MAX
+--- gcl27-2.7.1.orig/h/aarch64-macosx.h
++++ gcl27-2.7.1/h/aarch64-macosx.h
+@@ -20,11 +20,6 @@
+ #undef HAVE_AOUT
+ #undef HAVE_ELF
+-
+-/* Alternatively, we could use the global variable vm_page_size.  */
+-/* #define PAGEWIDTH 12 */
+-
+-
+ #include <unistd.h> /* to get sbrk defined */
+@@ -107,17 +102,17 @@ do {int c=0;
+ #define GET_FULL_PATH_SELF(a_)                              \
+ do {                                                        \
+-uint32_t bufsize = 1024;                               \
+-static char buf [1024];                                     \
+-static char fub [1024];                                     \
+-if (_NSGetExecutablePath (buf, &bufsize) != 0) {            \
++  uint32_t bufsize = 1024;                                \
++  static char buf [1024];                                 \
++  static char fub [1024];                                 \
++  if (_NSGetExecutablePath (buf, &bufsize) != 0) {        \
+     error ("_NSGetExecutablePath failed");                  \
+-}                                                           \
+-if (realpath (buf, fub) == 0) {                             \
++  }                                                       \
++  if (realpath (buf, fub) == 0) {                         \
+     error ("realpath failed");                              \
+-}                                                           \
+-(a_) = fub;                                                 \
+-} while (0)
++  }                                                       \
++  (a_) = fub;                                             \
++ } while (0)
+ #define C_GC_OFFSET 4
+ #include <mach-o/arm64/reloc.h>
+@@ -141,7 +136,7 @@ if (realpath (buf, fub) == 0) {
+ #define FPE_INIT Cnil
+-#include <sys/param.h>/*PATH_MAX MAXPATHLEN*/
++#include <sys/param.h>
+ #undef MIN
+ #undef MAX
+--- gcl27-2.7.1.orig/h/mach64_i386_reloc.h
++++ gcl27-2.7.1/h/mach64_i386_reloc.h
+@@ -2,13 +2,13 @@
+ #define GOT_RELOC(ri) ri->r_type==X86_64_RELOC_GOT_LOAD||ri->r_type==X86_64_RELOC_GOT
+-
+   case X86_64_RELOC_UNSIGNED:         // for absolute addresses
+      if (ri->r_extern || !ri->r_pcrel) 
+       store_val(q,~0L,ri->r_pcrel ? a-rel : a);
+     break; 
++
+   case X86_64_RELOC_GOT_LOAD:         // a MOVQ load of a GOT entry
+   case X86_64_RELOC_GOT:              // a MOVQ load of a GOT entry
+@@ -17,10 +17,11 @@
+     a=(ul)got;
+   case X86_64_RELOC_SIGNED:           // for signed 32-bit displacement
++  case X86_64_RELOC_SIGNED_1:           // adjustment in *q
++  case X86_64_RELOC_SIGNED_4:           // adjustment in *q
+   case X86_64_RELOC_BRANCH:           // a CALL/JMP instruction with 32-bit displacement
+      if (ri->r_extern || !ri->r_pcrel)           
+-       store_val(q,MASK(32),(ri->r_pcrel ? a-((ul)q+4) : a)+(signed)(*q&MASK(32)));
++       add_vals(q,MASK(32),(ri->r_pcrel ? a-((ul)q+4) : a));
+     break;
+-
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -1673,6 +1673,5 @@ void stack_list(void);
+ void *msbrk(intptr_t);
+ int msbrk_init(void);
+ int msbrk_end(void);
+-
+-object
+-quick_call_function_vec(object,ufixnum,object *);
++object quick_call_function_vec(object,ufixnum,object *);
++int msbrk_initialized(void);
+--- gcl27-2.7.1.orig/lsp/gcl_dl.lsp
++++ gcl27-2.7.1/lsp/gcl_dl.lsp
+@@ -3,27 +3,76 @@
+ (export '(mdlsym mdl lib-name))
+-(defun lib-name (p)
+-  (if (or (string= p "") (string= p "libc") (string= p "libm")) "" 
+-    (string-concatenate #+darwin "/usr/lib/system/" p #+darwin ".dylib" #+cygwin ".dll" #-(or darwin cygwin) ".so")));FIXME
++(defvar *lib-package-syms* nil);FIXME accelerator for do-symbols
++(defvar *dladdr-mods* nil)
++(defconstant +dl-suffix+ #+darwin ".dylib" #+cygwin ".dll" #-(or darwin cygwin) ".so")
++
++(defun esubseq (s &optional (b 0) (e (length s)) &aux (s (string s)));avoid mdl/memmove call in subseq
++  (make-vector 'character (- e b) nil nil s b nil nil))
++
++(defun name-lib (n)
++  (when (>= (string-match (load-time-value (compile-regexp "\([^/]*\)$")) n) 0)
++    (setq n (esubseq n (match-beginning 1) (match-end 1))))
++  (when (>= (string-match (load-time-value (compile-regexp "(\.(so|dylib|dll))$")) n) 0)
++    (setq n (esubseq n 0 (match-beginning 1))))
++  #+darwin(when (>= (string-match (load-time-value (compile-regexp "^libsystem")) n) 0)
++          (setq n "libSystem"))
++  n)
++
++(defun lib-name (p &aux (p (name-lib p)))
++  (if (member p '("" "libc" "libm") :test #'string=)
++      "" ; FIXME
++      (string-concatenate p +dl-suffix+)))
++
++(defun find-external-symbol (str p)
++  (multiple-value-bind (sym key) (find-symbol str p)
++    (when (eq key :external)
++      sym)))
++
++(defun fdlsym (str n pk &aux r sym)
++  (declare (dynamic-extent r))
++  (let* ((n (name-lib n))
++       (psym (find-symbol n pk)))
++    (mapc (lambda (x &aux (s (find-external-symbol str x)))
++          (when s
++            (when (if sym (<= (symbol-value s) (symbol-value sym)) t)
++              (setq sym s))))
++        (if psym
++            (push psym r)
++            (when (zerop (length n))
++              *lib-package-syms*)))
++    sym))
++
++(defun dladdr-mod (p n &aux (p (name-lib p))(n (name-lib n)))
++  (cond ((cdr (assoc p *dladdr-mods* :test 'string=)))
++      ((unless (string= p n) (plusp (length n)))
++       (cdar (push (cons p n) *dladdr-mods*)))
++      (p)))
++
++(defun reg-psym (psym)
++  (car (or (member psym *lib-package-syms*)
++         (push psym *lib-package-syms*))))
++
++(defun mdlsym (str &optional (n "")
++             &aux (n (lib-name n))
++               (pk (load-time-value (or (find-package "LIB") (make-package "LIB")))))
++  (or
++   (fdlsym str n pk);FIXME repeated dlsym unreliable on non-Linux
++   (let* ((k (dlopen n))
++        (ad (dlsym k str))
++        (p (or (dladdr ad t) ""));FIXME work around dladdr here, not posix
++        (p (dladdr-mod p n))
++        (psym (reg-psym (intern p pk)))
++        (npk (or (find-package psym) (make-package psym :use '(:cl))))
++        (sym (and (shadow str npk) (intern str npk))))
++     (export (list psym) pk)
++     (export sym npk)
++     (set psym k)(set sym ad)
++     sym)))
+ (defun mdl (n p vad)
+-  (let* ((sym (mdlsym n (lib-name p)))
++  (let* ((sym (mdlsym n p))
+        (ad (symbol-value sym))
+        (adp (aref %init vad)))
+     (dladdr-set adp ad)
+     (dllist-push %memory sym adp)))
+-
+-(defun mdlsym (str &optional (n "" np))
+-  (let* ((pk (or (find-package "LIB") (make-package "LIB")))
+-       (k  (if np (dlopen n) 0))
+-       (ad (dlsym k str))
+-       (p (or (dladdr ad t) ""));FIXME work around dladdr here, not posix
+-       (psym (intern p pk))
+-       (npk (or (find-package psym) (make-package psym :use '(:cl))))
+-       (sym (and (shadow str npk) (intern str npk))))
+-    (export (list psym) pk)
+-    (export sym npk)
+-    (set psym k)(set sym ad)
+-    sym))
+-
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1700,19 +1700,14 @@ bool writable_malloc=0;
+ static void *
+ malloc_internal(size_t size) {
+-  if (!gcl_alloc_initialized) {
++  if (!msbrk_initialized()) {
+     static bool recursive_malloc;
+     if (recursive_malloc)
+       error("Bad malloc");
+     recursive_malloc=1;
+     gcl_init_alloc(&size);
+     recursive_malloc=0;
+-  } else
+-    /*FIXME idempotent but required gcl_init_alloc functions in saved images*/
+-#ifdef INITIALIZE_BRK
+-    INITIALIZE_BRK;
+-#endif
+-
++  }
+   CHECK_INTERRUPT;
+   
+--- gcl27-2.7.1.orig/o/cfun.c
++++ gcl27-2.7.1/o/cfun.c
+@@ -76,29 +76,16 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O
+     
+ DEFUN("DLSYM",object,fSdlsym,SI,2,2,NONE,OI,OO,OO,OO,(fixnum h,object name),"") {
+-  void *ad;
++  void *ad=0;
+   dlerror();
+   name=coerce_to_string(name);
+   massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>0);
+-#ifndef __CYGWIN__
++
+   ad=dlsym(h ? (void *)h : RTLD_DEFAULT,FN1);
+-  ad=ad ? ad : dlsym(RTLD_DEFAULT,FN1);
+-  ad=is_text_addr(ad) ? dlsym(RTLD_NEXT,FN1) : ad;
+-#else
+-  ad=0;
+-  if (h) ad=dlsym((void *)h,FN1);
+-  {
+-    static void *n,*u,*c;
+-    n=n ? n : dlopen("ntdll.dll",RTLD_LAZY|RTLD_GLOBAL);
+-    u=u ? u : dlopen("ucrtbase.dll",RTLD_LAZY|RTLD_GLOBAL);
+-    c=c ? c : dlopen("cygwin1.dll",RTLD_LAZY|RTLD_GLOBAL);
+-    ad=ad ? ad : dlsym(n,FN1);
+-    ad=ad ? ad : dlsym(u,FN1);
+-    ad=ad ? ad : dlsym(c,FN1);
+-    ad=ad ? ad : dlsym(RTLD_DEFAULT,FN1);
+-  }
+-#endif
++
++  ad=ad && is_text_addr(ad) ? dlsym(RTLD_NEXT,FN1) : ad;
++
+   if (!ad) {
+     char *er=dlerror();
+     FEerror("dlsym lookup failure on ~s: ~s",2,name,make_simple_string(er ? er : ""));
+@@ -141,12 +128,8 @@ DEFUN("DLOPEN",object,fSdlopen,SI,1,1,NO
+   dlerror();
+   name=coerce_to_string(name);
+-  if (!strncmp("libc.so",name->st.st_self,VLEN(name)) || !strncmp("libm.so",name->st.st_self,VLEN(name)))
+-    v=dlopen(0,RTLD_LAZY|RTLD_GLOBAL);
+-  else {
+-    massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>0);
+-    v=dlopen(FN1,RTLD_LAZY|RTLD_GLOBAL);
+-  }
++  massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>=0);
++  v=dlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL);
+   if ((err=dlerror()))
+     FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err));
+--- gcl27-2.7.1.orig/o/gprof.c
++++ gcl27-2.7.1/o/gprof.c
+@@ -6,7 +6,7 @@
+ static unsigned long gprof_on;
+ /*all but this stub to be written in the future provided*/
+-#if defined(__APPLE__) && defined(__aarch64__)
++#if defined(__APPLE__)
+ void
+ _mcleanup(void) {
+   return;
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -434,6 +434,10 @@ next_shared_lib_map_no_malloc(void)  {
+ static void *stack_map_base=(void *)-1;
+ void *shared_lib_start=(void *)-1;
++#if defined(__APPLE__)
++unsigned long heap_vmsize=INITIAL_HEAP_VMSIZE;
++#endif
++
+ static int
+ set_real_maxpage(void *beg) {
+@@ -445,11 +449,8 @@ set_real_maxpage(void *beg) {
+   mp=ufmin(mp,get_phys_pages1(0,0));
+-#if defined(__APPLE__) && defined(__aarch64__)
+-  {
+-    extern unsigned long heap_vmsize;
+-    mp=ufmin(mp,heap_vmsize>>PAGEWIDTH);
+-  }
++#if defined(__APPLE__)
++  mp=ufmin(mp,heap_vmsize>>PAGEWIDTH);
+ #endif
+   sz=ufmin(mem_bound,log_maxpage_bound);
+@@ -722,7 +723,7 @@ DEFUN("KCL-SELF",object,fSkcl_self,SI,0,
+ }
+-#if defined(__APPLE__) && defined(__aarch64__)
++#if defined(__APPLE__)
+ #include "disable_mac_aslr.h"
+ #endif
+@@ -737,7 +738,7 @@ main(int argc, char **argv, char **envp)
+   bds_top = bds_org-1;
+   frs_top = frs_org-1;
+-#if defined(__APPLE__) && defined(__aarch64__)
++#if defined(__APPLE__)
+   disable_aslr(argc, argv, envp);
+ #endif
+--- gcl27-2.7.1.orig/o/msbrk.c
++++ gcl27-2.7.1/o/msbrk.c
+@@ -7,6 +7,11 @@ static void *m;
+ static ufixnum sz,mps;
+ int
++msbrk_initialized(void) {
++  return m!=NULL;
++}
++
++int
+ msbrk_end(void) {
+   sz+=(ufixnum)m;
+@@ -33,7 +38,6 @@ new_map(void *v,ufixnum s) {
+   but not so large that the Mac linker ignores the segment designation
+   and creates a __huge section under __DATA for this and other
+   variables.  We enlarge this on unexec.*/
+-unsigned long heap_vmsize=INITIAL_HEAP_VMSIZE;
+ #define mstr(a) #a
+ #define Mstr(a) mstr(a)
+ asm (".zerofill __HEAP,__heap,__end," Mstr(INITIAL_HEAP_VMSIZE) "\n\t.globl __end");
+--- gcl27-2.7.1.orig/o/regexp.c
++++ gcl27-2.7.1/o/regexp.c
+@@ -230,8 +230,13 @@ int case_fold_search = 0;
+  * Beware that the optimization-preparation code in here knows about some
+  * of the structure of the compiled regexp.
+  */
++
++static char *regend;          /* Non null terminated string end */
++#define GET_UCHAR(a_) ({char *_a=(a_);_a<regend ? *(unsigned char *)_a : 0;})
++
++
+ static regexp *
+-regcomp(char *exp,ufixnum *sz)
++regcomp(char *exp,ufixnum *sz,ufixnum length)
+ {
+       register regexp *r;
+       register char *scan;
+@@ -244,6 +249,7 @@ regcomp(char *exp,ufixnum *sz)
+       /* First pass: determine size, legality. */
+       regparse = exp;
++      regend=exp+length;
+       regnpar = 1;
+       regsize = 0L;
+       regcode = &regdummy;
+@@ -263,6 +269,7 @@ regcomp(char *exp,ufixnum *sz)
+       /* Second pass: emit code. */
+       regparse = exp;
++      regend=exp+length;
+       regnpar = 1;
+       regcode = r->program;
+       regc(MAGIC);
+@@ -356,7 +363,7 @@ reg(int paren, int *flagp)
+       if (!(flags&HASWIDTH))
+               *flagp &= ~HASWIDTH;
+       *flagp |= flags&SPSTART;
+-      while (*regparse == '|') {
++      while (GET_UCHAR(regparse) == '|') {
+               regparse++;
+               br = regbranch(&flags);
+               if (br == NULL)
+@@ -376,10 +383,10 @@ reg(int paren, int *flagp)
+               regoptail(br, ender);
+       /* Check for proper termination. */
+-      if (paren && *regparse++ != ')') {
++      if (paren && GET_UCHAR(regparse++) != ')') {
+               FAIL("unmatched ()");
+-      } else if (!paren && *regparse != '\0') {
+-              if (*regparse == ')') {
++      } else if (!paren && GET_UCHAR(regparse) != '\0') {
++        if (GET_UCHAR(regparse) == ')') {
+                       FAIL("unmatched ()");
+               } else
+                       FAIL("junk on end");    /* "Can't happen". */
+@@ -406,7 +413,7 @@ regbranch(int *flagp)
+       ret = regnode(BRANCH);
+       chain = NULL;
+-      while (*regparse != '\0' && *regparse != '|' && *regparse != ')') {
++      while (GET_UCHAR(regparse) != '\0' && GET_UCHAR(regparse) != '|' && GET_UCHAR(regparse) != ')') {
+               latest = regpiece(&flags);
+               if (latest == NULL)
+                       return(NULL);
+@@ -444,7 +451,7 @@ regpiece(int *flagp)
+       if (ret == NULL)
+               return(NULL);
+-      op = *regparse;
++      op = GET_UCHAR(regparse);
+       if (!ISMULT(op)) {
+               *flagp = flags;
+               return(ret);
+@@ -481,7 +488,7 @@ regpiece(int *flagp)
+               regoptail(ret, next);
+       }
+       regparse++;
+-      if (ISMULT(*regparse))
++      if (ISMULT(GET_UCHAR(regparse)))
+               FAIL("nested *?+");
+       return(ret);
+@@ -503,7 +510,7 @@ regatom(int *flagp)
+       *flagp = WORST;         /* Tentatively. */
+-      switch (*regparse++) {
++      switch (GET_UCHAR(regparse++)) {
+       case '^':
+               ret = regnode(BOL);
+               break;
+@@ -524,19 +531,19 @@ regatom(int *flagp)
+                       register int classend;
+                       ret = regnode(ANYOF);
+-                      if (*regparse == '^') { /* Complement of range. */
++                      if (GET_UCHAR(regparse) == '^') {       /* Complement of range. */
+                               matches = 0;
+                               regparse++;}
+-                      if (*regparse == ']' || *regparse == '-')
+-                              REGC(*regparse++);
+-                      while (*regparse != '\0' && *regparse != ']') {
+-                              if (*regparse == '-') {
++                      if (GET_UCHAR(regparse) == ']' || GET_UCHAR(regparse) == '-')
++                        REGC(GET_UCHAR(regparse++));
++                      while (GET_UCHAR(regparse) != '\0' && GET_UCHAR(regparse) != ']') {
++                        if (GET_UCHAR(regparse) == '-') {
+                                       regparse++;
+-                                      if (*regparse == ']' || *regparse == '\0')
++                                      if (GET_UCHAR(regparse) == ']' || GET_UCHAR(regparse) == '\0')
+                                               REGC('-');
+                                       else {
+-                                              clss = UCHARAT(regparse-2)+1;
+-                                              classend = UCHARAT(regparse);
++                                              clss = GET_UCHAR(regparse-2)+1;
++                                              classend = GET_UCHAR(regparse);
+                                               if (clss > classend+1)
+                                                       FAIL("invalid [] range");
+                                               for (; clss <= classend; clss++)
+@@ -544,10 +551,10 @@ regatom(int *flagp)
+                                               regparse++;
+                                       }
+                               } else
+-                                      REGC(*regparse++);
++                          REGC(GET_UCHAR(regparse++));
+                       }
+                       REGC('\0');
+-                      if (*regparse != ']')
++                      if (GET_UCHAR(regparse) != ']')
+                               FAIL("unmatched []");
+                       regparse++;
+                       *flagp |= HASWIDTH|SIMPLE;
+@@ -597,10 +604,10 @@ regatom(int *flagp)
+               /* NOTREACHED */
+               break;
+       case '\\':
+-              if (*regparse == '\0')
++        if (GET_UCHAR(regparse) == '\0')
+                       FAIL("trailing \\");
+               ret = regnode(EXACTLY);
+-              regc(*regparse++);
++              regc(GET_UCHAR(regparse++));
+               regc('\0');
+               *flagp |= HASWIDTH|SIMPLE;
+               break;
+@@ -609,10 +616,12 @@ regatom(int *flagp)
+                       register char ender;
+                       regparse--;
+-                      len = strcspn(regparse, META);
++                      len=({ufixnum _l=0;char _c,*_s=regparse;/*strcspn*/
++                          for (;(_c=GET_UCHAR(_s++)) && !strchr(META,_c);_l++);
++                          _l;});
+                       if (len <= 0)
+                               FAIL("internal disaster");
+-                      ender = *(regparse+len);
++                      ender = GET_UCHAR(regparse+len);
+                       if (len > 1 && ISMULT(ender))
+                               len--;          /* Back off clear of ?+* operand. */
+                       *flagp |= HASWIDTH;
+@@ -620,7 +629,7 @@ regatom(int *flagp)
+                               *flagp |= SIMPLE;
+                       ret = regnode(EXACTLY);
+                       while (len > 0) {
+-                              regc(*regparse++);
++                        regc(GET_UCHAR(regparse++));
+                               len--;
+                       }
+                       regc('\0');
+@@ -775,7 +784,6 @@ static int
+ regexec(register regexp *prog, register char *string, char *start, int length)
+ {
+       register char *s;
+-      char saved,*savedp=NULL;
+       int value;
+       /* Be paranoid... */
+@@ -806,13 +814,8 @@ regexec(register regexp *prog, register
+                       return(0);
+       }
+-      /* null terminate string */
+-      if (length)
+-        { savedp = &string[length];
+-          saved = *savedp;
+-          if (saved) *savedp=0;
+-        }
+-      else saved=0;
++      regend=string+length;
++
+ #define RETURN_VAL(i) do {value=i; goto DO_RETURN;}while(0)
+       /* Mark beginning of line for ^ . */
+@@ -836,13 +839,13 @@ regexec(register regexp *prog, register
+           
+           int amt;
+-          unsigned char *s = (unsigned char *)string+ advance -1;
++          char *s = string+ advance -1;
+           min_initial_branch_length(prog, buf,advance);
+           switch(advance) {
+           case 1:
+             while (1)
+-            { if (buf[*s]==0)
+-                { if (*s == 0) RETURN_VAL(0);
++              { if (buf[GET_UCHAR(s)]==0)
++                  { if (GET_UCHAR(s) == 0) RETURN_VAL(0);
+                   else
+                     if (regtry(prog,(char *)s-(1-1))) RETURN_VAL(1);}
+               s++; }
+@@ -851,10 +854,10 @@ regexec(register regexp *prog, register
+           case 2:
+           while (length > 0)
+             { 
+-              amt = (buf[s[0]]);
++              amt = (buf[GET_UCHAR(s)]);
+               if (amt == 0)
+                 {
+-                  amt = buf[s[-1]]-1;
++                  amt = buf[GET_UCHAR(s-1)]-1;
+                   if (amt <=0) {
+                     if (regtry(prog,(char *)s-(advance-1))) 
+                       RETURN_VAL(1);
+@@ -867,24 +870,24 @@ regexec(register regexp *prog, register
+           RETURN_VAL(0);
+         case 3:
+           while (length > 0)
+-            { amt = (buf[s[0]]);
++            { amt = (buf[GET_UCHAR(s)]);
+               if (amt == 0)
+-                {amt = buf[s[-1]]-1;
++                {amt = buf[GET_UCHAR(s-1)]-1;
+                  if (amt <=0)
+-                   {amt = buf[s[-2]]-2;
++                   {amt = buf[GET_UCHAR(s-2)]-2;
+                     if (amt <=0)
+                       {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1);
+                       else amt =1;}}}
+               s += amt; length -= amt;}
+         case 4:
+           while (length > 0)
+-            { amt = (buf[s[0]]);
++            { amt = (buf[GET_UCHAR(s)]);
+               if (amt == 0)
+-                {amt = buf[s[-1]]-1;
++                {amt = buf[GET_UCHAR(s-1)]-1;
+                  if (amt <=0)
+-                   {amt = buf[s[-2]]-2;
++                   {amt = buf[GET_UCHAR(s-2)]-2;
+                     if (amt <=0)
+-                      {amt = buf[s[-3]]-3;
++                      {amt = buf[GET_UCHAR(s-3)]-3;
+                        if (amt <=0)
+                          {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1);
+                          else amt =1;}}}}
+@@ -892,15 +895,15 @@ regexec(register regexp *prog, register
+         default:
+           while (length > 0)
+-            { amt = (buf[s[0]]);
++            { amt = (buf[GET_UCHAR(s)]);
+               if (amt == 0)
+-                {amt = buf[s[-1]]-1;
++                {amt = buf[GET_UCHAR(s-1)]-1;
+                  if (amt <=0)
+-                   {amt = buf[s[-2]]-2;
++                   {amt = buf[GET_UCHAR(s-2)]-2;
+                     if (amt <=0)
+-                      {amt = buf[s[-3]]-3;
++                      {amt = buf[GET_UCHAR(s-3)]-3;
+                        if (amt <=0)
+-                         {amt = buf[s[-4]]-4;
++                         {amt = buf[GET_UCHAR(s-4)]-4;
+                           if (amt <=0)
+                          {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1);
+                          else amt =1;}}}}}
+@@ -913,13 +916,13 @@ regexec(register regexp *prog, register
+               /* We know what char it must start with. */
+         { if (case_fold_search)
+             {char ch = tolower(prog->regstart);
+-             while (*s)
+-               { if (tolower(*s)==ch)
++              while (GET_UCHAR(s))
++                { if (tolower((GET_UCHAR(s)))==ch)
+                    {if (regtry(prog, s))
+                       RETURN_VAL(1);}
+                  s++;}}
+           else
+-            while ((s = strchr(s, prog->regstart)) != NULL) {
++            while ((s = memchr(s, prog->regstart,regend-s)) != NULL) {
+               if (regtry(prog, s))
+                 RETURN_VAL(1);
+               s++;
+@@ -930,12 +933,11 @@ regexec(register regexp *prog, register
+               do {
+                       if (regtry(prog, s))
+                               RETURN_VAL(1);
+-              } while (*s++ != '\0');
++              } while (GET_UCHAR(s) && s++);
+       /* Failure. */
+       RETURN_VAL(0);
+       DO_RETURN:
+-      if(saved) *savedp=saved;
+       return value;
+       
+ }
+@@ -1040,11 +1042,11 @@ regmatch(char *prog)
+                               return(0);
+                       break;
+               case EOL:
+-                      if (*reginput != '\0')
++                if (GET_UCHAR(reginput) != '\0')
+                               return(0);
+                       break;
+               case ANY:
+-                      if (*reginput == '\0')
++                if (GET_UCHAR(reginput) == '\0')
+                               return(0);
+                       reginput++;
+                       break;
+@@ -1055,12 +1057,12 @@ regmatch(char *prog)
+                               opnd = OPERAND(scan);
+                               if (case_fold_search)
+                               while (*opnd )
+-                                { if (tolower(*opnd) != tolower(*ch))
++                                { if (tolower(*opnd) != tolower(GET_UCHAR(ch)))
+                                      return 0;
+                                   else { ch++; opnd++;}}
+                               else
+                               while (*opnd )
+-                                { if (*opnd != *ch)
++                                { if (*opnd != GET_UCHAR(ch))
+                                      return 0;
+                                   else { ch++; opnd++;}}
+                               /* a match */
+@@ -1068,14 +1070,14 @@ regmatch(char *prog)
+                       }
+                       break;
+               case ANYOF:
+-                      if (*reginput == '\0' ||
+-                          OPERAND(scan)[*(unsigned char *)reginput] == 0)
++                if (GET_UCHAR(reginput) == '\0' ||
++                    OPERAND(scan)[GET_UCHAR(reginput)] == 0)
+                               return(0);
+                       reginput++;
+                       break;
+               case ANYBUT:
+-                      if (*reginput == '\0' ||
+-                          OPERAND(scan)[*(unsigned char *)reginput] != 0)
++                if (GET_UCHAR(reginput) == '\0' ||
++                    OPERAND(scan)[GET_UCHAR(reginput)] != 0)
+                               return(0);
+                       reginput++;
+                       break;
+@@ -1168,9 +1170,9 @@ regmatch(char *prog)
+                               while (no >= min) {
+                                       /* If it could work, try it. */
+                                       if (nextch == '\0' ||
+-                                          *reginput == nextch
++                                          GET_UCHAR(reginput) == nextch
+                                           || (case_fold_search &&
+-                                            tolower(*reginput) == nextch))
++                                              tolower(GET_UCHAR(reginput)) == nextch))
+                                               if (regmatch(next))
+                                                       return(1);
+                                       /* Couldn't or didn't -- back up. */
+@@ -1217,34 +1219,34 @@ regrepeat(char *p)
+       opnd = OPERAND(p);
+       switch (OP(p)) {
+       case ANY:
+-              count = strlen(scan);
++              count = regend-scan/* strlen(scan) */;
+               scan += count;
+               break;
+       case EXACTLY:
+               { char ch = *opnd;
+               if (case_fold_search)
+                 { ch = tolower(*opnd);
+-                  while (ch == tolower(*scan))
++                  while (ch == tolower(GET_UCHAR(scan)))
+                     {
+                       count++;
+                       scan++;}}
+               else
+-                while (ch  == *scan) {
++                while (ch  == GET_UCHAR(scan)) {
+                   count++;
+                   scan++;
+               }}
+               break;
+       case ANYOF:
+-              while (*scan != '\0' &&
+-                     opnd[*(unsigned char *)scan] != 0)
++        while (GET_UCHAR(scan) != '\0' &&
++               opnd[GET_UCHAR(scan)] != 0)
+                 {
+                       count++;
+                       scan++;
+               }
+               break;
+       case ANYBUT:
+-              while (*scan != '\0' &&
+-                     opnd[*(unsigned char *)scan] == 0)
++        while (GET_UCHAR(scan) != '\0' &&
++               opnd[GET_UCHAR(scan)] == 0)
+         {
+                       count++;
+                       scan++;
+--- gcl27-2.7.1.orig/o/regexpr.c
++++ gcl27-2.7.1/o/regexpr.c
+@@ -65,18 +65,13 @@ DEFUN("MATCH-END",object,fSmatch_end,SI,
+ DEFUN("COMPILE-REGEXP",object,fScompile_regexp,SI,1,1,NONE,OO,OO,OO,OO,(object p),
+         "Provide handle to export pre-compiled regexp's to string-match") {
+-  char *tmp;
+   object res;
+   void *v;
+   ufixnum sz=0;
+   p=coerce_to_string(p);
+-  if (!(tmp=alloca(VLEN(p)+1)))
+-    FEerror("out of C stack",0);
+-  memcpy(tmp,p->st.st_self,VLEN(p));
+-  tmp[VLEN(p)]=0;
+-  if (!(v=(void *)regcomp(tmp,&sz)))
++  if (!(v=(void *)regcomp(p->st.st_self,&sz,VLEN(p))))
+     FEerror("regcomp failure",0);
+   res=alloc_object(t_vector);
+@@ -115,7 +110,7 @@ be over written.   \
+   int len,start,end;
+   va_list ap;
+   object v=sSAmatch_dataA->s.s_dbind,l=Cnil,f=OBJNULL;
+-  char **pp,*str,save_c=0;
++  char **pp,*str;
+   if (!stringp(pattern) && type_of(pattern)!=t_symbol &&
+       (type_of(pattern)!=t_vector || pattern->v.v_elttype!=aet_uchar))
+@@ -168,20 +163,8 @@ be over written.   \
+     }
+     str=string->st.st_self;
+-    if (NULL_OR_ON_C_STACK(str+end) || str+end==(void *)compiled_regexp) {
+-
+-      if (!(str=alloca(VLEN(string)+1)))
+-      FEerror("Cannot allocate memory on C stack",0);
+-      memcpy(str,string->st.st_self,VLEN(string));
+-
+-    } else
+-      save_c=str[end];
+-    str[end]=0;
+-
+     ans = regexec(compiled_regexp,str+start,str,end-start);
+-    str[end] = save_c;
+-
+     if (!ans ) {
+       END_NO_INTERRUPT;
+       RETURN1((object)-1);
+--- gcl27-2.7.1.orig/o/sfasli.c
++++ gcl27-2.7.1/o/sfasli.c
+@@ -157,7 +157,7 @@ use_symbols(double d,...) {
+     d=d/(c+I*d);
+   }
+-#if defined(__APPLE__) && defined(__aarch64__)/*FIXME non-lazy pointer support in sfaslmacho.c*/
++#if defined(__APPLE__)/*FIXME non-lazy pointer support in sfaslmacho.c*/
+   extern  void __chkstk_darwin(void);
+   __chkstk_darwin();
+ #endif
+--- gcl27-2.7.1.orig/o/sfaslmacho.c
++++ gcl27-2.7.1/o/sfaslmacho.c
+@@ -48,7 +48,7 @@ typedef unsigned long ul;
+ STATIC_RELOC_VARS
+ #endif
+-static int
++static inline int
+ ovchks(ul v,ul m) {
+   m|=m>>1;
+@@ -58,14 +58,14 @@ ovchks(ul v,ul m) {
+ }
+-static int
++static inline int
+ ovchku(ul v,ul m) {
+   return !(v&=m);
+ }
+-static int
++static inline int
+ store_val(ul *w,ul m,ul v) {
+   *w=(v&m)|(*w&~m);
+@@ -74,7 +74,7 @@ store_val(ul *w,ul m,ul v) {
+ }
+-static int
++static inline int
+ store_valu(ul *w,ul m,ul v) {
+   massert(ovchku(v,~m));
+@@ -84,7 +84,7 @@ store_valu(ul *w,ul m,ul v) {
+ }
+-static int
++static inline int
+ store_vals(ul *w,ul m,ul v) {
+   massert(ovchks(v,~m));
+@@ -92,21 +92,19 @@ store_vals(ul *w,ul m,ul v) {
+ }
+-#ifdef W_X
+-static int
++static inline int
+ add_vals(ul *w,ul m,ul v) {
+-  return store_vals(w,m,v+(*w&m));
++  return store_vals(w,m,v+(*w&m)-((*w&((m+1)>>1))<<1));
+ }
+-static int
++static inline int
+ add_valu(ul *w,ul m,ul v) {
+   return store_valu(w,m,v+(*w&m));
+ }
+-#endif
+ #ifndef _LP64
+ /*redirect trampolines gcc-4.0 gives no reloc for stub sections on x86 only*/
+@@ -467,12 +465,10 @@ dup_sym(char *src) {
+   if ((c=strstr(src,e))) {
+     memcpy(buf,src,(c-src));
+     buf[c-src]=0;
+-    printf("dup %s -> %s\n",src,buf);
+     return buf;
+   }
+   if (!strcmp(src,"_my_free")||!strcmp(src,"_my_calloc")||!strcmp(src,"_my_malloc")||!strcmp(src,"_my_realloc")) {
+     strcpy(buf,src+3);
+-    printf("dup %s -> %s\n",src,buf);
+     return buf;
+   }
+   return NULL;
+--- gcl27-2.7.1.orig/o/unexmacosx.c
++++ gcl27-2.7.1/o/unexmacosx.c
+@@ -864,6 +864,7 @@ typedef struct {
+ typedef struct {
+   uint32_t magic;      /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */
+   uint32_t length;     /* Total length of header + CMS data */
++  uint8_t zero[18040-30];
+ } CS_BlobWrapper;
+ #include <CommonCrypto/CommonDigest.h>
+@@ -893,7 +894,7 @@ dump_code_signature(struct segment_comma
+   CS_Requirements rq;
+   CS_BlobWrapper cms;
+   const char *id="GCL";
+-  const long nss=2,ss=32,id_len=RNDUP(strlen(id)+1,8);
++  const long nss=2,ss=32,id_len=strlen(id)+1;
+   long cd_len,len,np,i;
+   uint8_t hash[32],data[PAGESIZE];
+   void *v;
+@@ -901,11 +902,6 @@ dump_code_signature(struct segment_comma
+   lseek(outfd,0,SEEK_END);
+   len=lseek(outfd,0,SEEK_CUR);
+-  if (len%16) {
+-    unsigned long x=0;
+-    mwrite(&x,sizeof(x));
+-    len=lseek(outfd,0,SEEK_CUR);
+-  }
+   ldc.dataoff=len;
+   np=RNDUP(len,PAGESIZE)>>PAGEWIDTH;
+@@ -916,7 +912,7 @@ dump_code_signature(struct segment_comma
+   curr_header_offset+=ldc.cmdsize;
+   le_seg->filesize+=ldc.datasize;
+-  le_seg->vmsize+=RNDUP(ldc.datasize,PAGESIZE);
++  le_seg->vmsize+=RNDUP(ldc.datasize,1<<14);
+   mpwrite(le_seg,sizeof(*le_seg),le_ho);
+   uassert(curr_header_offset<=text_seg_lowest_offset);
+@@ -931,7 +927,7 @@ dump_code_signature(struct segment_comma
+   mpwrite(&mh,sizeof(mh),0);
+   sb.magic=htonl(0xfade0cc0);
+-  sb.length=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms));
++  sb.length=htonl(ldc.datasize-sizeof(cms.zero)-2);
+   sb.count=htonl(sizeof(bi)/sizeof(*bi));
+   mwrite(&sb,sizeof(sb));
+@@ -972,7 +968,7 @@ dump_code_signature(struct segment_comma
+   mwrite(v,id_len);
+   rq.magic=htonl(0xfade0c01);
+-  rq.length=htonl(12);
++  rq.length=htonl(sizeof(rq));
+   rq.count=htonl(0);
+   CC_SHA256(&rq,sizeof(rq),hash);
+   mwrite(hash,sizeof(hash));
+@@ -981,9 +977,9 @@ dump_code_signature(struct segment_comma
+   mwrite(hash,sizeof(hash));
+   for (i=0;i<np;i++) {
+-    uassert(memset(data,0,sizeof(data)));
+-    mpred(data,i==np-1 ? ntohl(cd.codeLimit)-(i<<PAGEWIDTH) : sizeof(data),i<<PAGEWIDTH);
+-    CC_SHA256(data,sizeof(data),hash);
++    unsigned long n=i==np-1 ? ntohl(cd.codeLimit)-(i<<PAGEWIDTH) : sizeof(data);
++    mpred(data,n,i<<PAGEWIDTH);
++    CC_SHA256(data,n,hash);
+     mwrite(hash,sizeof(hash));
+   }
+@@ -1006,6 +1002,9 @@ dump_it () {
+   long linkedit_delta=0,linkedit_vmdelta=0,linkedit_vmsize=0,text_vmaddr=0;
+   struct segment_command *le_seg=NULL,*tx_seg=NULL;
+   unsigned long le_ho=0;
++  extern unsigned long heap_vmsize;
++  extern int in_pre_gcl;/*support libboot.so*/
++  extern char *data_start;
+   
+ #if VERBOSE
+   printf ("--- Load Commands written to Output File ---\n");
+@@ -1023,6 +1022,12 @@ dump_it () {
+       }
+     }
+   uassert(le_seg&&tx_seg);
++  {
++    heap_vmsize=                                                      \
++      (in_pre_gcl ? SAVED_PRE_IMAGE_SPAN : SAVED_IMAGE_SPAN) -                \
++      (long)((long)data_start-text_vmaddr) -                          \
++      linkedit_vmsize;
++  }
+   
+   for (i = 0; i < nlc; i++)
+     switch (lca[i]->cmd) {
+@@ -1049,10 +1054,6 @@ dump_it () {
+         struct section *sectp = (struct section *) (scp + 1);
+         unsigned long header_offset=curr_header_offset + sizeof (struct segment_command);
+         extern int in_pre_gcl;/*support libboot.so*/
+-        unsigned long heap_vmsize=                                    \
+-          (in_pre_gcl ? SAVED_PRE_IMAGE_SPAN : SAVED_IMAGE_SPAN) -    \
+-          (long)((long)data_start-text_vmaddr) -                      \
+-          linkedit_vmsize;
+         if (core_end-data_start>heap_vmsize)
+           unexec_error ("data exceeds __HEAP vmsize");
diff --git a/debian/patches/Version_2_7_2pre28 b/debian/patches/Version_2_7_2pre28
new file mode 100644 (file)
index 0000000..fe0d6ac
--- /dev/null
@@ -0,0 +1,49 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 16 2026 01:30:34 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre27"
++"Version_2_7_2pre28"
+--- gcl27-2.7.1.orig/h/armhf-linux.h
++++ gcl27-2.7.1/h/armhf-linux.h
+@@ -7,6 +7,6 @@
+ #define NEED_STACK_CHK_GUARD
+-#define OUTPUT_MACH bfd_mach_arm_9
++#define OUTPUT_MACH bfd_mach_arm_7
+ #define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
+--- gcl27-2.7.1.orig/lsp/gcl_dl.lsp
++++ gcl27-2.7.1/lsp/gcl_dl.lsp
+@@ -10,7 +10,7 @@
+ (defun esubseq (s &optional (b 0) (e (length s)) &aux (s (string s)));avoid mdl/memmove call in subseq
+   (make-vector 'character (- e b) nil nil s b nil nil))
+-(defun name-lib (n)
++(defun name-lib (n &aux (n (string n)))
+   (when (>= (string-match (load-time-value (compile-regexp "\([^/]*\)$")) n) 0)
+     (setq n (esubseq n (match-beginning 1) (match-end 1))))
+   (when (>= (string-match (load-time-value (compile-regexp "(\.(so|dylib|dll))$")) n) 0)
diff --git a/debian/patches/Version_2_7_2pre30 b/debian/patches/Version_2_7_2pre30
new file mode 100644 (file)
index 0000000..30ee3ef
--- /dev/null
@@ -0,0 +1,1424 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 23 2026 18:56:31 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -158,7 +158,7 @@ C_SRC=o/typespec.c o/alloc.c o/gbc.c  o/
+       o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c  o/fat_string.c\
+       o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
+       o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
+-      o/user_init.c o/user_match.c o/mapfun.c
++      o/user_init.c o/user_match.c o/mapfun.c o/disable_aslr.c
+ #     o/bitop.c o/nfunlink.c o/clxsocket.c
+ #     o/bcmp.c o/bcopy.c o/bzero.c
+@@ -260,7 +260,7 @@ unixport/saved_%: | unixport/raw_% unixp
+               echo "(system:save-system \"../$@\")" | \
+               cat ../unixport/init_raw.lsp prof_init.lsp - | \
+                       GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+-                              ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
++                              ../unixport/raw_$* unixport/ -libdir ./  && \
+               rm -f ../unixport/gcl_cmpnopt.lsp
+       rm -rf sb_$*
+@@ -605,14 +605,16 @@ info/gcl%.texi: info/gcl.texi
+       touch $@
+ %.info: %.texi | xbin/mktmp # FIXME parallel ugliness
+-      i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i
++      i=$$($| $@);ln -f $< $$i;mkdir $$i.d;cp $(<D)/*.texi $$i.d;$(MAKEINFO) $$i.d/$(<F) --output $@;rm -rf $$i*
+ %.pdf: %.dvi | xbin/mktmp
+       i=$$($| $@);j=$$i.$$(echo $< | sed 's,.*\.,,g');ln -f $< $$j;\
+-              dvipdfm $$j -o $@ && rm -f $$i*
++              mkdir $$j.d;cp $< $$j.d;(cd  $$j.d;dvipdfm $(<F)) && mv $$j.d/$(*F).pdf $@ && rm -rf $$i*
+ %.dvi: %.texi | xbin/mktmp
+       i=$$($| $@);j=$$i.$$(echo $< | sed 's,.*\.,,g');ln -f $< $$j;\
+               TEXINPUTS=$(srcdir):$$TEXINPUTS \
+-              tex -output-directory=$(@D) $$j|tail && mv $$i.dvi $@ && rm -f $$i*
++              mkdir $$j.d;cp $(<D)/*.texi $$j.d;\
++              (cd $$j.d;TEXINPUTS=$(srcdir):$$TEXINPUTS \
++              tex --output-comment="TeX output" $(<F)|tail) && mv $$j.d/$(*F).dvi $@ && rm -rf $$i*
+ %.html: %.texi | xbin/mktmp
+       mkdir -p $@
+       i=$$($| $@);ln -f $< $$i;$(MAKEINFO) --html $$i --output $@;rm -f $$i
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -187,16 +187,17 @@ am__lib_libbase_gcl_a_SOURCES_DIST = o/t
+       o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \
+       o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \
+       o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \
+-      o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \
+-      h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \
+-      h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \
+-      h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \
+-      h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \
+-      h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \
+-      h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
+-      h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \
+-      h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \
+-      o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      o/mapfun.c o/disable_aslr.c h/compbas2.h h/compbas.h \
++      h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h \
++      h/fixnum.h h/frame.h h/funlink.h h/globals.h h/gmp_wrappers.h \
++      h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \
++      h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h \
++      h/page.h h/pageinfo.h h/pbits.h h/pool.h h/prelink.h \
++      h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h \
++      h/type.h h/usig.h h/vs.h h/writable.h o/regexp.h h/arth.h \
++      h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \
++      gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
++      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
+       h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
+       h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
+       h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
+@@ -245,7 +246,7 @@ am__objects_1 = o/typespec.$(OBJEXT) o/a
+       o/gmp_wrappers.$(OBJEXT) o/nsocket.$(OBJEXT) \
+       o/prelink.$(OBJEXT) o/sfasl.$(OBJEXT) o/msbrk.$(OBJEXT) \
+       o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \
+-      o/mapfun.$(OBJEXT)
++      o/mapfun.$(OBJEXT) o/disable_aslr.$(OBJEXT)
+ am__objects_2 =
+ @AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT)
+ am_lib_libbase_gcl_a_OBJECTS = $(am__objects_1) $(am__objects_2) \
+@@ -273,16 +274,17 @@ am__lib_libbase_gcl_gprof_a_SOURCES_DIST
+       o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \
+       o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \
+       o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \
+-      o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \
+-      h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \
+-      h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \
+-      h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \
+-      h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \
+-      h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \
+-      h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
+-      h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \
+-      h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \
+-      o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      o/mapfun.c o/disable_aslr.c h/compbas2.h h/compbas.h \
++      h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h \
++      h/fixnum.h h/frame.h h/funlink.h h/globals.h h/gmp_wrappers.h \
++      h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \
++      h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h \
++      h/page.h h/pageinfo.h h/pbits.h h/pool.h h/prelink.h \
++      h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h \
++      h/type.h h/usig.h h/vs.h h/writable.h o/regexp.h h/arth.h \
++      h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \
++      gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
++      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
+       h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
+       h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
+       h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
+@@ -367,7 +369,8 @@ am__objects_5 = o/lib_libbase_gcl_gprof_
+       o/lib_libbase_gcl_gprof_a-msbrk.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT)
++      o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT) \
++      o/lib_libbase_gcl_gprof_a-disable_aslr.$(OBJEXT)
+ @AMM_LIBBOOT_FALSE@am__objects_6 =  \
+ @AMM_LIBBOOT_FALSE@   o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT)
+ am__objects_7 = $(am__objects_5) $(am__objects_2) $(am__objects_2) \
+@@ -492,8 +495,8 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/bind.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \
+       o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \
+       o/$(DEPDIR)/character.Po o/$(DEPDIR)/cmpaux.Po \
+-      o/$(DEPDIR)/conditional.Po o/$(DEPDIR)/earith.Po \
+-      o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \
++      o/$(DEPDIR)/conditional.Po o/$(DEPDIR)/disable_aslr.Po \
++      o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \
+       o/$(DEPDIR)/fat_string.Po o/$(DEPDIR)/file.Po \
+       o/$(DEPDIR)/format.Po o/$(DEPDIR)/frame.Po \
+       o/$(DEPDIR)/funlink.Po o/$(DEPDIR)/gbc.Po \
+@@ -514,6 +517,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po \
++      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-error.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-eval.Po \
+@@ -870,7 +874,6 @@ TK_INCLUDE = @TK_INCLUDE@
+ TK_LIBRARY = @TK_LIBRARY@
+ TK_LIB_SPEC = @TK_LIB_SPEC@
+ TK_XLIB_DIR = @TK_XLIB_DIR@
+-USE_CLEANUP = @USE_CLEANUP@
+ VERSION = @VERSION@
+ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
+ XMKMF = @XMKMF@
+@@ -1056,7 +1059,7 @@ C_SRC = o/typespec.c o/alloc.c o/gbc.c
+       o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c  o/fat_string.c\
+       o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\
+       o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \
+-      o/user_init.c o/user_match.c o/mapfun.c
++      o/user_init.c o/user_match.c o/mapfun.c o/disable_aslr.c
+ #     o/bitop.c o/nfunlink.c o/clxsocket.c
+ #     o/bcmp.c o/bcopy.c o/bzero.c
+@@ -1390,6 +1393,8 @@ o/msbrk.$(OBJEXT): o/$(am__dirstamp) o/$
+ o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
++o/disable_aslr.$(OBJEXT): o/$(am__dirstamp) \
++      o/$(DEPDIR)/$(am__dirstamp)
+ o/boot.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/character.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/file.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+@@ -1534,6 +1539,8 @@ o/lib_libbase_gcl_gprof_a-user_match.$(O
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
++o/lib_libbase_gcl_gprof_a-disable_aslr.$(OBJEXT): o/$(am__dirstamp) \
++      o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT): o/$(am__dirstamp) \
+@@ -1748,6 +1755,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/character.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cmpaux.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/conditional.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/disable_aslr.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/earith.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/error.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/eval.Po@am__quote@ # am--include-marker
+@@ -1778,6 +1786,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-error.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-eval.Po@am__quote@ # am--include-marker
+@@ -2760,6 +2769,20 @@ o/lib_libbase_gcl_gprof_a-mapfun.obj: o/
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-mapfun.obj `if test -f 'o/mapfun.c'; then $(CYGPATH_W) 'o/mapfun.c'; else $(CYGPATH_W) '$(srcdir)/o/mapfun.c'; fi`
++o/lib_libbase_gcl_gprof_a-disable_aslr.o: o/disable_aslr.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-disable_aslr.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Tpo -c -o o/lib_libbase_gcl_gprof_a-disable_aslr.o `test -f 'o/disable_aslr.c' || echo '$(srcdir)/'`o/disable_aslr.c
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/disable_aslr.c' object='o/lib_libbase_gcl_gprof_a-disable_aslr.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-disable_aslr.o `test -f 'o/disable_aslr.c' || echo '$(srcdir)/'`o/disable_aslr.c
++
++o/lib_libbase_gcl_gprof_a-disable_aslr.obj: o/disable_aslr.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-disable_aslr.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Tpo -c -o o/lib_libbase_gcl_gprof_a-disable_aslr.obj `if test -f 'o/disable_aslr.c'; then $(CYGPATH_W) 'o/disable_aslr.c'; else $(CYGPATH_W) '$(srcdir)/o/disable_aslr.c'; fi`
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/disable_aslr.c' object='o/lib_libbase_gcl_gprof_a-disable_aslr.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-disable_aslr.obj `if test -f 'o/disable_aslr.c'; then $(CYGPATH_W) 'o/disable_aslr.c'; else $(CYGPATH_W) '$(srcdir)/o/disable_aslr.c'; fi`
++
+ o/lib_libbase_gcl_gprof_a-boot.o: o/boot.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po
+@@ -4011,6 +4034,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/character.Po
+       -rm -f o/$(DEPDIR)/cmpaux.Po
+       -rm -f o/$(DEPDIR)/conditional.Po
++      -rm -f o/$(DEPDIR)/disable_aslr.Po
+       -rm -f o/$(DEPDIR)/earith.Po
+       -rm -f o/$(DEPDIR)/error.Po
+       -rm -f o/$(DEPDIR)/eval.Po
+@@ -4041,6 +4065,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-error.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-eval.Po
+@@ -4323,6 +4348,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/character.Po
+       -rm -f o/$(DEPDIR)/cmpaux.Po
+       -rm -f o/$(DEPDIR)/conditional.Po
++      -rm -f o/$(DEPDIR)/disable_aslr.Po
+       -rm -f o/$(DEPDIR)/earith.Po
+       -rm -f o/$(DEPDIR)/error.Po
+       -rm -f o/$(DEPDIR)/eval.Po
+@@ -4353,6 +4379,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-disable_aslr.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-error.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-eval.Po
+@@ -4572,7 +4599,7 @@ unixport/saved_%: | unixport/raw_% unixp
+               echo "(system:save-system \"../$@\")" | \
+               cat ../unixport/init_raw.lsp prof_init.lsp - | \
+                       GCL_LSPSYSDIR=../$(srcdir)/unixport/ \
+-                              ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/  && \
++                              ../unixport/raw_$* unixport/ -libdir ./  && \
+               rm -f ../unixport/gcl_cmpnopt.lsp
+       rm -rf sb_$*
+@@ -4896,14 +4923,16 @@ info/gcl%.texi: info/gcl.texi
+       touch $@
+ %.info: %.texi | xbin/mktmp # FIXME parallel ugliness
+-      i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i
++      i=$$($| $@);ln -f $< $$i;mkdir $$i.d;cp $(<D)/*.texi $$i.d;$(MAKEINFO) $$i.d/$(<F) --output $@;rm -rf $$i*
+ %.pdf: %.dvi | xbin/mktmp
+       i=$$($| $@);j=$$i.$$(echo $< | sed 's,.*\.,,g');ln -f $< $$j;\
+-              dvipdfm $$j -o $@ && rm -f $$i*
++              mkdir $$j.d;cp $< $$j.d;(cd  $$j.d;dvipdfm $(<F)) && mv $$j.d/$(*F).pdf $@ && rm -rf $$i*
+ %.dvi: %.texi | xbin/mktmp
+       i=$$($| $@);j=$$i.$$(echo $< | sed 's,.*\.,,g');ln -f $< $$j;\
+               TEXINPUTS=$(srcdir):$$TEXINPUTS \
+-              tex -output-directory=$(@D) $$j|tail && mv $$i.dvi $@ && rm -f $$i*
++              mkdir $$j.d;cp $(<D)/*.texi $$j.d;\
++              (cd $$j.d;TEXINPUTS=$(srcdir):$$TEXINPUTS \
++              tex --output-comment="TeX output" $(<F)|tail) && mv $$j.d/$(*F).dvi $@ && rm -rf $$i*
+ %.html: %.texi | xbin/mktmp
+       mkdir -p $@
+       i=$$($| $@);ln -f $< $$i;$(MAKEINFO) --html $$i --output $@;rm -f $$i
+--- gcl27-2.7.1.orig/ansi-tests/compile-file.lsp
++++ gcl27-2.7.1/ansi-tests/compile-file.lsp
+@@ -40,10 +40,11 @@
+       (destructuring-bind
+         (output-truename warnings-p failure-p)
+         vals
+-      (print (namestring (truename target-pathname)))
+-      (print (namestring output-truename))
++;     (print (namestring (truename target-pathname)))
++;     (print (namestring output-truename))
+       (values
+-       (let ((v1 (or print verbose
++       (let ((v0 (string= (namestring (truename target-pathname)) (namestring output-truename)))
++             (v1 (or print verbose
+                      (and (not print-p) *compile-print*)
+                      (and (not verbose-p) *compile-verbose*)
+                      (string= str "")))
+@@ -57,8 +58,8 @@
+              (v7 (equalpt-or-report (namestring (truename target-pathname))
+                                     (namestring output-truename)))
+              (v8 (not (fboundp funname))))
+-         (if (and v1 v2 v3 v4 v5 v6 (eql v7 t) v8) t
+-           (list v1 v2 v3 v4 v5 v6 v7 v8)))
++         (if (and v0 v1 v2 v3 v4 v5 v6 (eql v7 t) v8) t
++           (list v0 v1 v2 v3 v4 v5 v6 v7 v8)))
+        (progn
+          (load output-truename)
+          (funcall funname)))))))
+--- gcl27-2.7.1.orig/ansi-tests/gclload.lsp
++++ gcl27-2.7.1/ansi-tests/gclload.lsp
+@@ -39,4 +39,5 @@
+ ;#+gcl(fpe::break-on-floating-point-exceptions :division-by-zero t :floating-point-overflow t :floating-point-underflow t)
+-(time (regression-test:do-tests))
++(regression-test:do-tests)
++;(time (regression-test:do-tests))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -788,7 +788,7 @@
+   (with-open-file (s f :direction :output)
+     (prin1 '(in-package :compiler) s)
+     (terpri s)
+-    (maphash (lambda (x y)
++    (mapc (lambda (l &aux (x (pop l)) (y (car l)))
+              (prin1
+               `(merge-inls
+                 ',x
+@@ -805,7 +805,9 @@
+                            (car y))))
+               s)
+              (terpri s))
+-           *inl-hash*))
++        (let (r)
++          (maphash (lambda (x y) (push (list x y) r)) *inl-hash*)
++          (sort r 'string< :key (lambda (x) (prin1-to-string (car x)))))))
+   nil)
+ (defun show-inls (fn)
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp
+@@ -196,7 +196,7 @@
+ (defvar *c-debug* nil)
+ (defvar *dump-inl-hash* nil)
+ (defun compile-file1 (input-pathname
+-                      &key (output-file (compile-file-pathname (truename input-pathname)))
++                      &key (output-file (compile-file-pathname input-pathname))
+                            (o-file t)
+                            (c-file *default-c-file*)
+                            (h-file *default-h-file*)
+@@ -261,7 +261,7 @@ Cannot compile ~a.~%" (namestring (merge
+    (setq *init-name* (init-name output-file t))
+    (delete-file output-file)
+    (setq *function-filename* (unless *compiler-compile*
+-                             (namestring (truename (pathname *compiler-input*)))))
++                             (namestring (pathname *compiler-input*))))
+    (let* ((eof (cons nil nil))
+         (device (pathname-device output-file))
+@@ -615,7 +615,11 @@ Cannot compile ~a.~%" (namestring (merge
+       (concatenate 'string (subseq flags 0 i) (remove-flag flag (subseq flags (+ i (length flag)))))
+       flags)))
+-(defun compiler-command (&rest args )
++(defun compiler-command (&rest args
++                       &aux
++                         (*cc* (mysub *cc* "<CWD>"
++                                      (let ((s (namestring si::*current-directory*)))
++                                        (subseq s 0 (1- (length s)))))))
+   (declare (special *c-debug*))
+   (format nil  "~a ~a -I~a ~a ~a -c ~a -o ~a"
+         (concatenate 'string
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -179,8 +179,7 @@
+ (defun init-name (p &optional sp)
+   (if sp
+-      (let* ((p (truename p))
+-           (pn (pathname-name p))
++      (let* ((pn (pathname-name p))
+            (g (zerop (si::string-match #v"^gcl_" pn))))
+       (dash-to-underscore
+        (namestring
+@@ -200,7 +199,7 @@
+       (dash-to-underscore fname)
+       "__"
+       (if (boundp '*compiler-input*)
+-        (subseq *init-name* 4)
++        *init-name*
+       "")))))
+ (defvar *top-form* nil)
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -663,7 +663,6 @@ TCLSH
+ HAVE_SIGEMT
+ HAVE_SIGSYS
+ HAVE_SV_ONSTACK
+-USE_CLEANUP
+ HAVE_PUTENV
+ HAVE_SETENV
+ NO_PROFILE
+@@ -813,6 +812,7 @@ enable_debug
+ enable_static
+ enable_pic
+ enable_dependency_tracking
++enable_aslr
+ enable_text_base
+ enable_segment_alignment_bits
+ enable_initial_heap_vmsize
+@@ -1493,6 +1493,7 @@ Optional Features:
+                           do not reject slow dependency extractors
+   --disable-dependency-tracking
+                           speeds up one-time build
++  --disable-aslr will ensure reproducible builds and/or work around absent no-pie
+   --enable-text_base=0x.... set base address for __TEXT
+   --enable-segment_alignment_bits=... set bit alignment for mach-o image segments
+   --enable-initial_heap_vmsize=0x.... set heap size for raw images
+@@ -7442,6 +7443,35 @@ add_args_to_cflags  -fsigned-char -pipe
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
++# Check whether --enable-aslr was given.
++if test ${enable_aslr+y}
++then :
++  enableval=$enable_aslr; enable_aslr=$enableval
++else case e in #(
++  e) enable_asrl="yes" ;;
++esac
++fi
++
++
++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether aslr must be disabled due to absent -no-pie" >&5
++printf %s "checking whether aslr must be disabled due to absent -no-pie... " >&6; }
++if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf '%s\n' "yes" >&6; }
++   enable_aslr="no"
++else
++   { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf '%s\n' "no" >&6; }
++fi
++
++if test "$enable_aslr" != "yes" ; then
++
++printf '%s\n' "#define DISABLE_ASLR 1" >>confdefs.h
++
++fi
++
++
++
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5
+ printf %s "checking for inline semantics... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -11577,16 +11607,6 @@ fi
+ fi
+-ac_fn_c_check_func "$LINENO" "_cleanup" "ac_cv_func__cleanup"
+-if test "x$ac_cv_func__cleanup" = xyes
+-then :
+-
+-printf '%s\n' "#define USE_CLEANUP 1" >>confdefs.h
+-
+-fi
+-
+-
+-
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
+ printf %s "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... " >&6; }
+@@ -12142,7 +12162,8 @@ LI_GITTAG="$GIT_TAG"
+ LI_RELEASE="$RELEASE"
+ #LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\""
+-LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
++STRIP_FINAL_CFLAGS=`echo $FINAL_CFLAGS | sed "s,$(pwd),<CWD>,g"`
++LI_CC="\"$GCL_CC -c `echo " $STRIP_FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
+ LI_DFP="\"$GPL_FLAG\""
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -286,6 +286,23 @@ add_args_to_cflags  -fsigned-char -pipe
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
++AC_ARG_ENABLE([aslr],[  --disable-aslr will ensure reproducible builds and/or work around absent no-pie],
++            [enable_aslr=$enableval],[enable_asrl="yes"])
++
++AC_MSG_CHECKING([whether aslr must be disabled due to absent -no-pie])
++if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then
++   AC_MSG_RESULT([yes])
++   enable_aslr="no"
++else
++   AC_MSG_RESULT([no])
++fi
++
++if test "$enable_aslr" != "yes" ; then
++      AC_DEFINE([DISABLE_ASLR],[1],[disable aslr])
++fi
++
++
++
+ AC_MSG_CHECKING([for inline semantics])
+ AC_COMPILE_IFELSE(
+     [AC_LANG_SOURCE([[
+@@ -1739,9 +1756,6 @@ if test "$no_setenv" = "1" ; then
+     AC_SUBST(HAVE_PUTENV)
+ fi
+-AC_CHECK_FUNC(_cleanup, [AC_DEFINE(USE_CLEANUP,1,[have _cleanup function])],)
+-AC_SUBST(USE_CLEANUP)
+-
+ AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
+ case $system in
+@@ -1948,7 +1962,8 @@ AC_SUBST(LI_GITTAG)
+ LI_RELEASE="$RELEASE"
+ AC_SUBST(LI_RELEASE)
+ #LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\""
+-LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
++STRIP_FINAL_CFLAGS=`echo $FINAL_CFLAGS | sed "s,$(pwd),<CWD>,g"`
++LI_CC="\"$GCL_CC -c `echo " $STRIP_FINAL_CFLAGS" | sed 's,-pg\b,,g'`\""
+ AC_SUBST(LI_CC)
+ LI_DFP="\"$GPL_FLAG\""
+ AC_SUBST(LI_DFP)
+--- gcl27-2.7.1.orig/gcl-tk/tkl.lisp
++++ gcl27-2.7.1/gcl-tk/tkl.lisp
+@@ -1496,7 +1496,7 @@ on ~a as in: ~s~%" host command )))
+    (format st "~%(in-package ~s)" (package-name *package*))
+    (dolist (v lis) (get-file-autoloads v st))
+    (format st "~%(in-package ~s)" (package-name *package*))
+-   (format st "~2%~s" `(setq si::*load-path* (append ',*paths* si::*load-path*)))
++   ;(format st "~2%~s" `(setq si::*load-path* (append ',*paths* si::*load-path*)))
+    ))
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre28"
++"Version_2_7_2pre30"
+--- gcl27-2.7.1.orig/h/error.h
++++ gcl27-2.7.1/h/error.h
+@@ -191,12 +191,4 @@ object ihs_top_function_name(ihs_ptr h);
+ #define ASSERT(a_) do {if (!(a_)) NERROR("The assertion " #a_ " failed");} while (0)
+-#define gcl_abort()  ({\
+-   frame_ptr fr=frs_sch_catch(sSPtop_abort_tagP->s.s_dbind);\
+-   vs_base[0]=sSPtop_abort_tagP->s.s_dbind;\
+-   vs_top=vs_base+1;\
+-   if (fr) unwind(fr,sSPtop_abort_tagP->s.s_dbind);\
+-   abort();\
+- })
+-
+ #endif /*ERROR_H*/
+--- gcl27-2.7.1.orig/h/gclincl.h.in
++++ gcl27-2.7.1/h/gclincl.h.in
+@@ -15,6 +15,9 @@
+ /* debug safecdr code */
+ #undef DEBUG_SAFE_CDR
++/* disable aslr */
++#undef DISABLE_ASLR
++
+ /* big endian word order */
+ #undef DOUBLE_BIGENDIAN
+@@ -335,9 +338,6 @@
+    backward compatibility; new code need not use it. */
+ #undef STDC_HEADERS
+-/* have _cleanup function */
+-#undef USE_CLEANUP
+-
+ /* use fionbio for non-blocking io */
+ #undef USE_FIONBIO
+--- gcl27-2.7.1.orig/h/notcomp.h
++++ gcl27-2.7.1/h/notcomp.h
+@@ -357,3 +357,5 @@ EXTER gmp_randfnptr_t Mersenne_Twister_G
+ #define collect(p_,f_) (p_)=&(*(p_)=(f_))->c.c_cdr
+ #define READ_STREAM_OR_FASD(strm_) \
+   type_of(strm_)==t_stream ? read_object_non_recursive(strm_) : fSread_fasd_top(strm_)
++
++#define NO_TRUENAME (raw_image || no_truename)
+--- gcl27-2.7.1.orig/h/object.h
++++ gcl27-2.7.1/h/object.h
+@@ -422,7 +422,7 @@ EXTER long holepage;                       /*  hole pages  *
+ EXTER fixnum new_holepage,starting_hole_div,starting_relb_heap_mult;
+ EXTER ulfixnum cumulative_allocation,recent_allocation;
+-EXTER ufixnum wait_on_abort;
++EXTER ufixnum wait_on_abort,no_truename;
+ EXTER double gc_alloc_min,mem_multiple,gc_page_min,gc_page_max;
+ EXTER char *multiprocess_memory_pool;
+@@ -630,7 +630,7 @@ EXTER object sSlambda_block_expanded;
+ # ifdef __GNUC__ 
+ # define assert(ex)\
+ {if (!(ex)){(void)fprintf(stderr, \
+-    "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);gcl_abort();}}
++    "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);do_gcl_abort();}}
+ # else
+ # define assert(ex)
+ # endif
+@@ -652,7 +652,7 @@ EXTER object sSlambda_block_expanded;
+ #define END_NO_INTERRUPT_SAFE \
+   signals_allowed = old_signals_allowed; \
+   if (signals_pending) \
+-    do{ if(signals_allowed ==0) /* should not get here*/gcl_abort(); \
++    do{ if(signals_allowed ==0) /* should not get here*/do_gcl_abort(); \
+    raise_pending_signals(sig_safe)}while(0)
+--- gcl27-2.7.1.orig/h/pool.h
++++ gcl27-2.7.1/h/pool.h
+@@ -120,6 +120,7 @@ close_pool(void) {
+     massert(!close(pool));
+     massert(!munmap(Pool,sizeof(struct pool)));
+     pool=-1;
++    memset(gcl_pool,0,sizeof(gcl_pool));
+   }
+ #endif
+   
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -1675,3 +1675,7 @@ int msbrk_init(void);
+ int msbrk_end(void);
+ object quick_call_function_vec(object,ufixnum,object *);
+ int msbrk_initialized(void);
++void *mdlopen(const char *,int);
++void close_dlopen_list(void);
++void set_global_env_defaults(void);
++void disable_aslr(int,char **,char **);
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -456,17 +456,17 @@
+       (file-output-stream (when outp (c-stream-fp strm))))))
+ (defun load-pathname-exists (z)
+-  (or (probe-file z)
+-      (when *allow-gzipped-file*
+-      (when (probe-file (string-concatenate (namestring z) ".gz"))
+-        z))))
++  (when (or (probe-file z)
++          (when *allow-gzipped-file*
++            (probe-file (string-concatenate (namestring z) ".gz"))))
++    z))
+ (defun load-pathname (p print if-does-not-exist external-format
+                       &aux (pp (merge-pathnames p))
+                       (epp (reduce (lambda (y x) (or y (load-pathname-exists (translate-pathname x "" p))))
+                                    '(#P".o" #P".lsp" #P".lisp" #P"") :initial-value nil)));FIXME newest?
+   (if epp
+-      (let* ((*load-pathname* pp)(*load-truename* epp))
++      (let* ((*load-pathname* pp)(*load-truename* (or (probe-file epp) epp)))
+       (with-open-file
+        (s epp :external-format external-format)
+        (if (member (peek-char nil s nil 'eof) '#.(mapcar 'code-char (list 127 #xcf #xce #x4c #x64)))
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1737,6 +1737,7 @@ free(void *ptr) {
+   
+   for (p = &malloc_list,pp=*p; pp && !endp(pp);  p = &((pp)->c.c_cdr),pp=pp->c.c_cdr)
+     if ((pp)->c.c_car->st.st_self == ptr) {
++      memset((pp)->c.c_car->st.st_self,0,(pp)->c.c_car->st.st_dim);
+       (pp)->c.c_car->st.st_self = NULL;
+       *p = pp->c.c_cdr;
+       return;
+@@ -1782,6 +1783,7 @@ realloc(void *ptr, size_t size) {
+       VFILLP_SET(x,size);
+       return(ptr);
+       } else {
++      memset(x->st.st_self,0,x->st.st_dim);
+       x->st.st_self = alloc_contblock(size);
+       x->st.st_dim = size;
+       VSET_MAX_FILLP(x);
+--- gcl27-2.7.1.orig/o/assignment.c
++++ gcl27-2.7.1/o/assignment.c
+@@ -192,7 +192,7 @@ DEFUN("FSET",object,fSfset,SI,2,2,NONE,O
+   if (function->fun.fun_plist!=Cnil) {
+     function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=sym;/*FIXME*/
+     x=function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car;
+-    function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=x==Cnil ? sLAload_truenameA->s.s_dbind : x;
++    function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=x==Cnil ? sLAload_pathnameA->s.s_dbind : x;
+   }
+   RETURN1(function);
+--- gcl27-2.7.1.orig/o/cfun.c
++++ gcl27-2.7.1/o/cfun.c
+@@ -73,7 +73,27 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O
+   }
+   RETURN1(Cnil);
+ }
+-    
++
++DEFVAR("*DLOPEN-HANDLES*",sSAdlopen_handlesA,SI,Cnil,"");
++
++void
++close_dlopen_list(void) {
++  for (;sSAdlopen_handlesA->s.s_dbind!=Cnil;sSAdlopen_handlesA->s.s_dbind=sSAdlopen_handlesA->s.s_dbind->c.c_cdr)
++    dlclose((void *)fix(sSAdlopen_handlesA->s.s_dbind->c.c_car));
++}
++
++void *
++mdlopen(const char *name,int flags) {
++  void *v=dlopen(name,flags);
++  if (name) {
++    object x=sSAdlopen_handlesA->s.s_dbind;
++    for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr);
++    if (x==Cnil)
++      sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind);
++  }
++  return v;
++}
++
+ DEFUN("DLSYM",object,fSdlsym,SI,2,2,NONE,OI,OO,OO,OO,(fixnum h,object name),"") {
+   void *ad=0;
+--- gcl27-2.7.1.orig/o/cmpaux.c
++++ gcl27-2.7.1/o/cmpaux.c
+@@ -613,8 +613,12 @@ gcl_init_or_load1(void (*fn)(void),const
+     printf("Initializing %s\n",file);fflush(stdout);
+     lpn=make_simple_string(file);
+-    massert(realpath(file,FN1));
+-    ltn=make_simple_string(FN1);
++    if (NO_TRUENAME)
++      ltn=lpn;
++    else {
++      massert(realpath(file,FN1));
++      ltn=make_simple_string(FN1);
++    }
+     memory=new_cfdata();
+     memory->d.tt=1;
+     memory->cfd.cfd_name=ltn;
+--- /dev/null
++++ gcl27-2.7.1/o/disable_aslr.c
+@@ -0,0 +1,139 @@
++#include "include.h"
++
++#ifdef DISABLE_ASLR
++
++#if defined(__APPLE__)
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <spawn.h>
++#include <sys/wait.h>
++#include <mach-o/dyld.h>
++
++#ifndef POSIX_SPAWN_DISABLE_ASLR
++#define POSIX_SPAWN_DISABLE_ASLR 0x0100
++#endif
++
++void
++disable_aslr(int argc, char **argv, char **envp) {
++
++  pid_t pid;
++  posix_spawnattr_t attr;
++
++  if (!_dyld_get_image_vmaddr_slide(0)) {
++    return;
++  }
++
++  posix_spawnattr_init(&attr);
++  posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETEXEC | POSIX_SPAWN_DISABLE_ASLR);
++  if (posix_spawn(&pid, argv[0], NULL, &attr, argv, envp)) {
++    perror("posix_spawn to disable ASLR failed");
++    do_gcl_abort();
++  }
++  posix_spawnattr_destroy(&attr);
++
++}
++
++#else
++
++#include <unistd.h>
++#include <string.h>
++#include <errno.h>
++
++
++static inline void
++reexec(int argc, char **argv, char **envp) {
++
++  int i,j,k;
++  char **n,**a;
++  void *v;
++
++  for (i=j=0;argv[i];i++)
++    j+=strlen(argv[i])+1;
++  for (k=0;envp[k];k++)
++    j+=strlen(envp[k])+1;
++  j+=(i+k+3)*sizeof(char *);
++
++  msbrk_init();
++  massert((v=sbrk(j))!=(void *)-1);
++
++  a=v;
++  v=a+i+1;
++  n=v;
++  v=n+k+2;
++
++  for (i=0;argv[i];i++) {
++    a[i]=v;
++    strcpy(v,argv[i]);
++    v+=strlen(v)+1;
++  }
++  a[i]=0;
++
++  for (k=0;envp[k];k++) {
++    n[k]=v;
++    strcpy(v,envp[k]);
++    v+=strlen(v)+1;
++  }
++  n[k]="GCL_UNRANDOMIZE=t";
++  n[k+1]=0;
++
++  gcl_cleanup(0);
++  massert(execve(*a,a,n)!=-1);
++
++}
++
++#if defined(__linux__)
++
++#include <sys/personality.h>
++#include <unistd.h>
++
++void
++disable_aslr(int argc, char **argv, char **envp) {
++
++  long pers;
++  long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_LIMIT_3GB : 0);
++
++  massert((pers=personality(-1))!=-1);
++
++  /*READ_IMPLIES_EXEC is for selinux, but selinux will reset it in the child*/
++  massert((pers=personality(READ_IMPLIES_EXEC|pers))!=-1);
++
++  if ((pers & flag)!=flag && !getenv("GCL_UNRANDOMIZE")) {
++
++    massert(personality(pers | flag)!=-1);
++    massert((personality(-1)&flag)==flag);
++
++    reexec(argc,argv,envp);
++
++  }
++
++}
++
++#elif defined(__FreeBSD_kernel__)
++
++#include <sys/procctl.h>
++
++void
++disable_aslr(int argc, char **argv, char **envp) {
++
++  const int cctl=PROC_ASLR_FORCE_DISABLE;
++  int stat,ctl=cctl;
++
++  massert(procctl(P_PID, 0, PROC_ASLR_STATUS, &stat) != -1);
++
++  if ((stat&cctl)!=cctl && !getenv("GCL_UNRANDOMIZE")) {
++
++    massert(procctl(P_PID, 0, PROC_ASLR_CTL, &ctl) != -1);
++    massert(procctl(P_PID, 0, PROC_ASLR_STATUS, &stat) != -1);
++    massert((stat&cctl)==cctl);
++
++    reexec(argc,argv,envp);
++
++  }
++
++}
++#endif
++
++#endif
++
++#endif
+--- gcl27-2.7.1.orig/o/error.c
++++ gcl27-2.7.1/o/error.c
+@@ -41,7 +41,7 @@ assert_error(const char *a,unsigned l,co
+           make_simple_string(f),make_simple_string(n),make_simple_string(strerror(errno)));
+   else {
+     emsg("The assertion %s on line %d of %s in function %s failed: %s",a,l,f,n,strerror(errno));
+-    gcl_abort();
++    do_gcl_abort();
+   }
+ }
+--- gcl27-2.7.1.orig/o/eval.c
++++ gcl27-2.7.1/o/eval.c
+@@ -134,12 +134,17 @@ funcall_vec(object fun,fixnum n,object *
+ }
++static object eval_vec[MAX_ARGS+1];
++
++void
++clear_eval_vec(void) {
++  memset(eval_vec,0,sizeof(eval_vec));
++}
+ static object
+ funcall_ap(object fun,fixnum n,va_list ap) {
+-  static object b[MAX_ARGS+1];
+-  object *t=b;
++  object *t=eval_vec;
+   ufixnum j=labs(n),i;
+   for (i=j;i--;)
+@@ -148,11 +153,11 @@ funcall_ap(object fun,fixnum n,va_list a
+     object x=*--t;
+     for (i=fun->fun.fun_minarg-(j-1);i--;*t++=x->c.c_car,x=x->c.c_cdr,n--)
+       if (x==Cnil)
+-      FEtoo_few_arguments(b,t);
++      FEtoo_few_arguments(eval_vec,t);
+     *t++=x;
+   }
+-  return funcall_vec(fun,n,b);
++  return funcall_vec(fun,n,eval_vec);
+ }
+     
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -1396,8 +1396,12 @@ load(const char *s) {
+   filename = make_simple_string(s);
+   vs_push(filename);
+-  massert(realpath(s,FN2));
+-  tfn = make_simple_string(FN2);
++  if (NO_TRUENAME)
++    tfn=filename;
++  else {
++    massert(realpath(s,FN2));
++    tfn = make_simple_string(FN2);
++  }
+   bds_bind(sLAload_pathnameA,filename);
+   bds_bind(sLAload_truenameA,tfn);
+@@ -1959,7 +1963,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S
+           exit(0);
+           break;
+         case -1:
+-          gcl_abort();
++          do_gcl_abort();
+           break;
+         default:
+           close_stream(y);
+--- gcl27-2.7.1.orig/o/gbc.c
++++ gcl27-2.7.1/o/gbc.c
+@@ -813,7 +813,9 @@ mark_phase(void) {
+ #ifndef N_RECURSION_REQD
+ #define N_RECURSION_REQD 2
+ #endif
+-  mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully);
++
++  if (!saving_system)
++    mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully);
+   
+ }
+@@ -925,6 +927,8 @@ mark_c_stack(jmp_buf env1, int n, void (
+   }
+ #endif
++  c_stack_where=NULL;
++
+ }
+ static void
+--- gcl27-2.7.1.orig/o/gmp.c
++++ gcl27-2.7.1/o/gmp.c
+@@ -10,7 +10,7 @@ static void *gcl_gmp_realloc(void *oldme
+ {
+   unsigned int *old,*new;
+   if (!jmp_gmp) { /* No gc in alloc if jmp_gmp */
+-    if (MP_SELF(big_gcprotect)) gcl_abort();
++    if (MP_SELF(big_gcprotect)) do_gcl_abort();
+     MP_SELF(big_gcprotect)=oldmem;
+     MP_ALLOCATED(big_gcprotect)=oldsize/MP_LIMB_SIZE;
+   }
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -333,18 +333,33 @@ acceptable_log_maxpage_bound(ufixnum l)
+      (void *)heap_end-data_start+CEI(rb_pointer-rb_begin(),PAGESIZE) < (1UL<<(l+1)));
+ }
++void
++set_global_env_defaults(void) {
++  mem_multiple=1.0;
++  mem_bound=sizeof(fixnum)*8-1;
++  gc_alloc_min=0.05;
++  gc_page_min=0.5;
++  gc_page_max=0.75;
++  multiprocess_memory_pool=NULL;
++  wait_on_abort=0;
++  no_truename=0;
++}
++
+ static void
+ get_gc_environ(void) {
+   const char *e;
+-  mem_multiple=1.0;
++  set_global_env_defaults();
++
++  if (getenv("GCL_NO_TRUENAME"))
++    no_truename=1;
++
+   if ((e=getenv("GCL_MEM_MULTIPLE"))) {
+     massert(sscanf(e,"%lf",&mem_multiple)==1);
+     massert(mem_multiple>=0.0);
+   }
+-  mem_bound=sizeof(fixnum)*8-1;
+   if ((e=getenv("GCL_MEM_BOUND"))) {
+     ufixnum f;
+     massert(sscanf(e,"%lud",&f)==1);
+@@ -354,19 +369,16 @@ get_gc_environ(void) {
+     }
+   }
+-  gc_alloc_min=0.05;
+   if ((e=getenv("GCL_GC_ALLOC_MIN"))) {
+     massert(sscanf(e,"%lf",&gc_alloc_min)==1);
+     massert(gc_alloc_min>=0.0);
+   }
+-  gc_page_min=0.5;
+   if ((e=getenv("GCL_GC_PAGE_MIN"))||(e=getenv("GCL_GC_PAGE_THRESH"))) {/*legacy support*/
+     massert(sscanf(e,"%lf",&gc_page_min)==1);
+     massert(gc_page_min>=0.0);
+   }
+-  gc_page_max=0.75;
+   if ((e=getenv("GCL_GC_PAGE_MAX"))) {
+     massert(sscanf(e,"%lf",&gc_page_max)==1);
+     massert(gc_page_max>=0.0);
+@@ -377,7 +389,6 @@ get_gc_environ(void) {
+       (*multiprocess_memory_pool=='t' || *multiprocess_memory_pool=='T'))/*GCL 2.6 compatability*/
+     multiprocess_memory_pool=getenv("HOME");
+-  wait_on_abort=0;
+   if ((e=getenv("GCL_WAIT_ON_ABORT")))
+     massert(sscanf(e,"%lu",&wait_on_abort)==1);
+@@ -574,7 +585,7 @@ init_boot(void) {
+   z=alloca(n);
+   snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s);
+ #ifdef USE_LIBBOOT
+-  if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL)))
++  if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL)))
+     printf("%s\n",dlerror());
+   if (!(q=dlsym(v,"gcl_init_boot")))
+     printf("%s\n",dlerror());
+@@ -617,17 +628,20 @@ gcl_mprotect(void *v,unsigned long l,int
+ DEFVAR("*CODE-BLOCK-RESERVE*",sSAcode_block_reserveA,SI,Cnil,"");
+-#define HAVE_GCL_CLEANUP
+-
+ void
+ gcl_cleanup(int gc) {
++  frame_ptr fr;
++
+   if (getenv("GCL_WAIT"))
+     sleep(30);
+-#if defined(USE_CLEANUP)
+-  {extern void _cleanup(void);_cleanup();}
+-#endif
++  if (sSPtop_abort_tagP && sSPtop_abort_tagP->s.s_dbind!=Cnil) {
++    fr=frs_sch_catch(sSPtop_abort_tagP->s.s_dbind);
++    vs_base[0]=sSPtop_abort_tagP->s.s_dbind;
++    vs_top=vs_base+1;
++    if (fr) unwind(fr,sSPtop_abort_tagP->s.s_dbind);
++  }
+ #ifdef USE_GPROF
+   gprof_cleanup();
+@@ -655,14 +669,14 @@ gcl_cleanup(int gc) {
+ static char *stack_to_be_allocated;
+ int
+-stack_ret(char *s,unsigned long size) {
++stack_ret(volatile char *s,unsigned long size) {
+   int r,i;
+   for (i=r=0;i<size;i++)
+     r^=((unsigned char)s[i])|((ufixnum)(s+i));
+   return r;
+ }
+-int
++static int
+ get_stack_to_be_allocated(unsigned long size) {
+   stack_to_be_allocated=alloca(size);
+   memset(stack_to_be_allocated,0,size);
+@@ -672,78 +686,38 @@ get_stack_to_be_allocated(unsigned long
+ DEFUN("EQUAL-TAIL-RECURSION-CHECK",object,fSequal_tail_recursion_check,SI,1,1,NONE,II,OO,OO,OO,(fixnum s),"") {
+   object x0=make_list(s/sizeof(object)),x1=make_list(s/sizeof(object));
+   char *w;
+-  get_stack_to_be_allocated(s);
++  fixnum f;
++
++  f=get_stack_to_be_allocated(s);
+   fLequal(x0,x1);
+   for (w=stack_to_be_allocated;w<stack_to_be_allocated+s && !*w;w++);
+-  RETURN1((object)(w-stack_to_be_allocated));
+-}
+-
+-#if !defined(DARWIN)&&!defined(__MINGW32__)
+-
+-static int
+-mbin(const char *s,char *o) {
+-
+-  struct stat ss;
+-
+-  if (!stat(s,&ss) && (ss.st_mode&S_IFMT)==S_IFREG && !access(s,R_OK|X_OK)) {
+-    massert(realpath(s,o));
+-    return 1;
+-  }
+-
+-  return 0;
+-
+-}
+-
+-static int
+-which(const char *n,char *o) {
+-
+-  char *s;
+-
+-  if (strchr(n,'/'))
+-    return mbin(n,o);
+-
+-  massert(snprintf(FN1,sizeof(FN1),"%s",getenv("PATH"))>1);
+-  for (s=NULL;(s=strtok(s ? NULL : FN1,":"));) {
+-
+-    massert(snprintf(FN2,sizeof(FN2),"%s/%s",s,n));
+-    if (mbin(FN2,o))
+-      return 1;
+-
+-  }
+-
+-  return 0;
+-
++  f+=w-stack_to_be_allocated;
++  stack_to_be_allocated=NULL;
++  RETURN1((object)f);
+ }
+-#endif
+-
+ DEFUN("KCL-SELF",object,fSkcl_self,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
+   return make_simple_string(kcl_self);
+ }
+-#if defined(__APPLE__)
+-#include "disable_mac_aslr.h"
+-#endif
+-
+ int
+ main(int argc, char **argv, char **envp) {
+-  GET_FULL_PATH_SELF(kcl_self);
+-  *argv=kcl_self;
++#ifdef DISABLE_ASLR
++  disable_aslr(argc,argv,envp);
++#endif
++
++#include "cstack.h"
++
++  kcl_self=*argv;
+   vs_top = vs_base = vs_org;
+   ihs_top = ihs_org-1;
+   bds_top = bds_org-1;
+   frs_top = frs_org-1;
+-#if defined(__APPLE__)
+-  disable_aslr(argc, argv, envp);
+-#endif
+-
+-#include "cstack.h"
+-
+   gcl_init_alloc(alloca(1));
+   setbuf(stdin, stdin_buf); 
+@@ -848,7 +822,7 @@ error(char *s)
+   printf("\nUnrecoverable error: %s.\n", s);
+   fflush(stdout);
+ #ifdef UNIX
+-  gcl_abort();
++  do_gcl_abort();
+ #endif
+ }
+--- gcl27-2.7.1.orig/o/nsocket.c
++++ gcl27-2.7.1/o/nsocket.c
+@@ -61,7 +61,7 @@
+ #endif
+ #define VOID void
+-#define ERROR_MESSAGE(msg)     do{ emsg(msg); gcl_abort() ; } while(0)
++#define ERROR_MESSAGE(msg)     do{ emsg(msg); do_gcl_abort() ; } while(0)
+ #ifdef STAND
+--- gcl27-2.7.1.orig/o/num_rand.c
++++ gcl27-2.7.1/o/num_rand.c
+@@ -79,7 +79,7 @@ rando(object x, object rs) {
+ #ifdef UNIX
+-#define RS_DEF_INIT time(0)
++#define RS_DEF_INIT ({char *e=getenv("SOURCE_DATE_EPOCH");e ? strtoul(e,NULL,10) : time(0);})
+ #else
+ #define RS_DEF_INIT 0
+ #endif
+--- gcl27-2.7.1.orig/o/save.c
++++ gcl27-2.7.1/o/save.c
+@@ -1,4 +1,6 @@
+ /* Copyright (C) 2024 Camm Maguire */
++#define NO_PRELINK_UNEXEC_DIVERSION
++
+ #ifndef FIRSTWORD
+ #include "include.h"
+ #endif
+@@ -13,25 +15,76 @@ memory_save(char *original_file, char *s
+   unexec(save_file,original_file,0,0,0);
+ }
+-#ifdef USE_CLEANUP
+-extern void _cleanup();
+-#endif
+-
+ LFD(siLsave)(void) {
+   extern char *kcl_self;
++  extern void *shared_lib_start;
++  extern jmp_buf gmp_jmp;
+   check_arg(1);
++  memset(FN1,0,sizeof(FN1));
++  coerce_to_filename(vs_base[0], FN1);
++
++  close_dlopen_list();
++  frs_top=frs_org-1;
+   gcl_cleanup(1);
+-  coerce_to_filename(vs_base[0], FN1);
++  /*FIXME clean this up when done*/
++
++  set_global_env_defaults();
++  shared_lib_start=NULL;
++  memset(gmp_jmp,0,sizeof(gmp_jmp));
++  memset(frs_org,0,(frs_limit-frs_org)*sizeof(*frs_org));
++  memset(bds_org,0,(bds_limit-bds_org)*sizeof(*bds_org));
++  memset(ihs_org,0,(ihs_limit-ihs_org)*sizeof(*ihs_org));
++  memset(vs_org,0,(vs_limit-vs_org)*sizeof(*vs_org));
++  {
++#if !defined(__APPLE__)
++    extern char **__environ;
++#endif
++    extern FILE *rl_instream;
++    extern char *rl_line_buffer;
++    extern void clear_eval_vec(void);
++#if !defined(__APPLE__)
++    __environ=NULL;
++#endif
++    rl_instream=NULL;
++    rl_readline_name=NULL;
++    rl_line_buffer=NULL;
++    rl_completion_entry_function=NULL;
++    stdin=NULL;
++    stdout=NULL;
++    stderr=NULL;
++    clear_eval_vec();
++    cs_limit=NULL;
++    cs_base=NULL;
++    cs_org=NULL;
++    memset(FN2,0,sizeof(FN2));
++    memset(FN3,0,sizeof(FN3));
++    memset(FN4,0,sizeof(FN4));
++    memset(FN5,0,sizeof(FN5));
++    ENVP=NULL;
++    ARGV=NULL;
++    ARGC=0;
++    my_stdin=NULL;
++    my_stdout=NULL;
++    my_stderr=NULL;
++    my_rl_readline_name_ptr=NULL;
++    my_rl_completion_entry_function_ptr=NULL;
++
++  }
++
++  {
++    void *v=kcl_self;
++    kcl_self=NULL;
+ #ifdef MEMORY_SAVE
+-  MEMORY_SAVE(kcl_self,FN1);
++    MEMORY_SAVE(v,FN1);
+ #else   
+-  memory_save(kcl_self, FN1);
+-#endif        
++    memory_save(v, FN1);
++#endif
++  }
+   /*  no return  */
+   exit(0);
+--- gcl27-2.7.1.orig/o/sgbc.c
++++ gcl27-2.7.1/o/sgbc.c
+@@ -147,7 +147,8 @@ sgc_mark_phase(void) {
+   }
+ #endif        
+   
+-  mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully);
++  if (!saving_system)
++    mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully);
+   
+ }
+--- gcl27-2.7.1.orig/o/unexmacosx.c
++++ gcl27-2.7.1/o/unexmacosx.c
+@@ -864,7 +864,6 @@ typedef struct {
+ typedef struct {
+   uint32_t magic;      /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */
+   uint32_t length;     /* Total length of header + CMS data */
+-  uint8_t zero[18040-30];
+ } CS_BlobWrapper;
+ #include <CommonCrypto/CommonDigest.h>
+@@ -927,7 +926,7 @@ dump_code_signature(struct segment_comma
+   mpwrite(&mh,sizeof(mh),0);
+   sb.magic=htonl(0xfade0cc0);
+-  sb.length=htonl(ldc.datasize-sizeof(cms.zero)-2);
++  sb.length=htonl(ldc.datasize);
+   sb.count=htonl(sizeof(bi)/sizeof(*bi));
+   mwrite(&sb,sizeof(sb));
+@@ -1050,10 +1049,8 @@ dump_it () {
+       } else if (strncmp (scp->segname, "__HEAP", 16) == 0) {
+-        extern char *data_start;
+         struct section *sectp = (struct section *) (scp + 1);
+         unsigned long header_offset=curr_header_offset + sizeof (struct segment_command);
+-        extern int in_pre_gcl;/*support libboot.so*/
+         if (core_end-data_start>heap_vmsize)
+           unexec_error ("data exceeds __HEAP vmsize");
+--- gcl27-2.7.1.orig/o/unixfsys.c
++++ gcl27-2.7.1/o/unixfsys.c
+@@ -289,7 +289,11 @@ DEFUN("READLINKAT",object,fSreadlinkat,S
+ DEFUN("GETCWD",object,fSgetcwd,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
+-  massert(getcwd(FN1,sizeof(FN1)));
++  if (NO_TRUENAME)
++    massert(snprintf(FN1,sizeof(FN1),"./")>=0);
++  else
++    massert(getcwd(FN1,sizeof(FN1)));
++
+   RETURN1(make_simple_string(FN1));
+ }
+--- gcl27-2.7.1.orig/o/unixsave.c
++++ gcl27-2.7.1/o/unixsave.c
+@@ -24,6 +24,8 @@ Foundation, 675 Mass Ave, Cambridge, MA
+       unixsave.c
+ */
++#define NO_PRELINK_UNEXEC_DIVERSION
++
+ #define IN_UNIXSAVE
+ #ifndef FIRSTWORD
+ #include "include.h"
+@@ -146,7 +148,8 @@ LFD(Lsave)() {
+   check_arg(1);
+   check_type_or_pathname_string_symbol_stream(&vs_base[0]);
+   coerce_to_filename(vs_base[0], FN1);
+-  
++
++  shared_lib_start=NULL;
+   _cleanup();
+   
+   memory_save(kcl_self, FN1);
+--- gcl27-2.7.1.orig/o/usig2.c
++++ gcl27-2.7.1/o/usig2.c
+@@ -273,7 +273,7 @@ before_interrupt(struct save_for_interru
+ #include "usig2_aux.c"
+    if (pp-p->save_objects>=(sizeof(p->save_objects)/sizeof(void *)))
+-     gcl_abort();
++     do_gcl_abort();
+  }
diff --git a/debian/patches/Version_2_7_2pre31 b/debian/patches/Version_2_7_2pre31
new file mode 100644 (file)
index 0000000..302c2f4
--- /dev/null
@@ -0,0 +1,70 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 23 2026 22:39:34 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre30"
++"Version_2_7_2pre31"
+--- gcl27-2.7.1.orig/h/pool.h
++++ gcl27-2.7.1/h/pool.h
+@@ -111,16 +111,20 @@ open_pool(void) {
+ void
+ close_pool(void) {
++  static int no_recur;
++
+ #ifndef NO_FILE_LOCKING
+-  if (pool!=-1) {
++  if (pool!=-1 && !no_recur) {
++    no_recur=1;
+     f.l_type=F_WRLCK;
+     if (!fcntl(pool,F_SETLK,&f))
+       massert(!unlink(gcl_pool) || errno==ENOENT);
+     register_pool(-1);
+-    massert(!close(pool));
+     massert(!munmap(Pool,sizeof(struct pool)));
++    massert(!close(pool));
+     pool=-1;
+     memset(gcl_pool,0,sizeof(gcl_pool));
++    no_recur=0;
+   }
+ #endif
+   
+--- gcl27-2.7.1.orig/o/disable_aslr.c
++++ gcl27-2.7.1/o/disable_aslr.c
+@@ -132,6 +132,14 @@ disable_aslr(int argc, char **argv, char
+   }
+ }
++
++#else  /*Unneeded on Hurd, cygwin/mingw via coff header flag*/
++
++void
++disable_aslr(int argc, char **argv, char **envp) {
++  return;
++}
++
+ #endif
+ #endif
diff --git a/debian/patches/Version_2_7_2pre32 b/debian/patches/Version_2_7_2pre32
new file mode 100644 (file)
index 0000000..015d982
--- /dev/null
@@ -0,0 +1,181 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 24 2026 17:33:56 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre31"
++"Version_2_7_2pre32"
+--- gcl27-2.7.1.orig/h/pool.h
++++ gcl27-2.7.1/h/pool.h
+@@ -120,9 +120,9 @@ close_pool(void) {
+     if (!fcntl(pool,F_SETLK,&f))
+       massert(!unlink(gcl_pool) || errno==ENOENT);
+     register_pool(-1);
+-    massert(!munmap(Pool,sizeof(struct pool)));
+     massert(!close(pool));
+     pool=-1;
++    massert(!munmap(Pool,sizeof(struct pool)));
+     memset(gcl_pool,0,sizeof(gcl_pool));
+     no_recur=0;
+   }
+--- gcl27-2.7.1.orig/lsp/gcl_top.lsp
++++ gcl27-2.7.1/lsp/gcl_top.lsp
+@@ -113,14 +113,14 @@
+        (coerce-to-package (eval (read))))))
+ ;(declaim (inline coerce-to-package))
+-(defun reset-lib-syms nil
++(defun reset-lib-syms (on)
+   (when (find-package "LIB")
+     (do-external-symbols 
+      (p "LIB")
+-     (setf (symbol-value p) (dlopen (lib-name p)))
++     (setf (symbol-value p) (when on (dlopen (lib-name p))))
+      (do-external-symbols 
+       (s p)
+-      (setf (symbol-value s) (dlsym (symbol-value p) s)))))
++      (setf (symbol-value s) (when on (dlsym (symbol-value p) s))))))
+   (cfdl))
+ (defun top-level1 ()
+@@ -698,7 +698,7 @@ First directory is checked for first nam
+ (defun set-up-top-level (&aux (i (argc)) tem)
+   (declare (fixnum i))
+-  (reset-lib-syms)
++  (reset-lib-syms t)
+   (setq *tmp-dir* (get-temp-dir) *current-directory* (current-directory-namestring))
+   (when *cc* ;raw-image init complete
+     (setq *current-directory* (pathname *current-directory*)
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1696,18 +1696,28 @@ static char *baby_malloc(n)
+ /*  #endif */
+ bool writable_malloc=0;
++static void *malloc_pre_main_base,*malloc_pre_main_ptr,*malloc_pre_main_end;
+ static void *
+ malloc_internal(size_t size) {
+   if (!msbrk_initialized()) {
+     static bool recursive_malloc;
+-    if (recursive_malloc)
+-      error("Bad malloc");
++    unsigned long s=PAGESIZE;
++
++    massert(!recursive_malloc);
+     recursive_malloc=1;
+-    gcl_init_alloc(&size);
++    if (!malloc_pre_main_base) {
++      massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1);
++      malloc_pre_main_ptr=malloc_pre_main_base;
++      malloc_pre_main_end=malloc_pre_main_base+s;
++    }
++    massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr));
++    malloc_pre_main_ptr+=size;
+     recursive_malloc=0;
+-  }
++    return malloc_pre_main_ptr-size;
++  } else
++    malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL;
+   CHECK_INTERRUPT;
+   
+@@ -1732,7 +1742,7 @@ free(void *ptr) {
+   object *p,pp;
+   
+-  if (ptr == 0)
++  if (ptr == 0 || ptr < data_start || ptr >= core_end)
+     return;
+   
+   for (p = &malloc_list,pp=*p; pp && !endp(pp);  p = &((pp)->c.c_cdr),pp=pp->c.c_cdr)
+--- gcl27-2.7.1.orig/o/cfun.c
++++ gcl27-2.7.1/o/cfun.c
+@@ -49,6 +49,8 @@ make_cfun(void (*self)(), object name, o
+ }
++DEF_ORDINARY("RESET-LIB-SYMS",sSreset_lib_syms,SI,"");
++
+ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
+   struct typemanager *tm=tm_of(t_cfdata);
+--- gcl27-2.7.1.orig/o/disable_aslr.c
++++ gcl27-2.7.1/o/disable_aslr.c
+@@ -91,7 +91,7 @@ void
+ disable_aslr(int argc, char **argv, char **envp) {
+   long pers;
+-  long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_LIMIT_3GB : 0);
++  long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_COMPAT_LAYOUT : 0);
+   massert((pers=personality(-1))!=-1);
+--- gcl27-2.7.1.orig/o/gbc.c
++++ gcl27-2.7.1/o/gbc.c
+@@ -1079,8 +1079,11 @@ GBC(enum type t) {
+       if (tm->tm_type==v->type)
+       for (x=pagetochar(page(v)),j=tm->tm_nppage;j--;x+=tm->tm_size) {
+         object o=x;
+-        if (type_of(o)==t_stream && !is_free(o) && o->sm.sm_fp && o->sm.sm_fp!=stdin && o->sm.sm_fp!=stdout && o->sm.sm_fp!=stderr)
+-          close_stream(o);
++        if (type_of(o)==t_stream && !is_free(o) && o->sm.sm_fp) {
++          if (o->sm.sm_fp!=stdin && o->sm.sm_fp!=stdout && o->sm.sm_fp!=stderr)
++            close_stream(o);
++          o->sm.sm_fp=NULL;
++        }
+       }
+     gc_time = -1;
+--- gcl27-2.7.1.orig/o/read.d
++++ gcl27-2.7.1/o/read.d
+@@ -1637,6 +1637,9 @@ Lsharp_dollar_reader()
+       tx=type_of(x);
+       vs_base[0] = alloc_object(t_random);
+       init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state);
++#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
++      vs_base[0]->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed;
++#endif
+       if (tx!=t_fixnum || fix(x)) {
+         if (tx==t_fixnum) {
+           if (vs_base[0]->rnd.rnd_state._mp_seed->_mp_size!=1)
+--- gcl27-2.7.1.orig/o/save.c
++++ gcl27-2.7.1/o/save.c
+@@ -20,12 +20,14 @@ LFD(siLsave)(void) {
+   extern char *kcl_self;
+   extern void *shared_lib_start;
+   extern jmp_buf gmp_jmp;
++  extern object sSreset_lib_syms;
+   check_arg(1);
+   memset(FN1,0,sizeof(FN1));
+   coerce_to_filename(vs_base[0], FN1);
++  ifuncall1(sSreset_lib_syms,Cnil);
+   close_dlopen_list();
+   frs_top=frs_org-1;
+   gcl_cleanup(1);
diff --git a/debian/patches/Version_2_7_2pre33 b/debian/patches/Version_2_7_2pre33
new file mode 100644 (file)
index 0000000..6df8592
--- /dev/null
@@ -0,0 +1,625 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 27 2026 12:16:43 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp
+@@ -555,8 +555,8 @@ Cannot compile ~a.~%" (namestring (merge
+                  (with-open-file (st hn)
+                    (si::copy-stream st *standard-output*))
+                  (when *disassemble-objdump*
+-                   (si::copy-stream (open (concatenate 'string "|objdump --source " (namestring on)))
+-                                    *standard-output*))
++                   (with-open-file (s (concatenate 'string "|objdump --source " (namestring on)))
++                     (si::copy-stream s *standard-output*)))
+                  (delete-file cn)
+                  (delete-file dn)
+                  (delete-file hn)
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -10369,11 +10369,7 @@ printf '%s\n' "$as_me: max log text star
+       # Need to get over default cstack and related maps between 0x1000000 and 0x2000000
+       if test "$use" == "386-gnu" || test "$use" == "amd64-gnu" ; then
+-         if test "$use" == "386-gnu" ; then
+-            q=24;
+-         else
+-            q=23;
+-         fi
++         q=24;
+          if test $min -lt $q && test $q -lt $max && test $q -lt 30; then
+             min=$q
+             { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -1355,11 +1355,7 @@ if test "`cat gcl.script | wc -l`" != "0
+       # Need to get over default cstack and related maps between 0x1000000 and 0x2000000
+       if test "$use" == "386-gnu" || test "$use" == "amd64-gnu" ; then
+-         if test "$use" == "386-gnu" ; then
+-            q=24;
+-         else
+-            q=23;
+-         fi
++         q=24;
+          if test $min -lt $q && test $q -lt $max && test $q -lt 30; then
+             min=$q
+             AC_MSG_NOTICE([min log text start increased to $min over c stack address])
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre32"
++"Version_2_7_2pre33"
+--- gcl27-2.7.1.orig/h/amd64-gnu.h
++++ gcl27-2.7.1/h/amd64-gnu.h
+@@ -1,10 +1,5 @@
+ #include "linux.h"
+-#define ADDITIONAL_FEATURES \
+-                   ADD_FEATURE("BSD386"); \
+-                           ADD_FEATURE("MC68020")
+-
+-
+ #define       I386
+ #define SGC
+@@ -21,3 +16,7 @@
+ #undef HAVE_D_TYPE /*FIXME defined, but not implemented in readdir*/
+ /* #define NO_FILE_LOCKING */ /*FIXME*/
++
++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE")
++
++#undef HAVE_FEENABLEEXCEPT
+--- gcl27-2.7.1.orig/h/notcomp.h
++++ gcl27-2.7.1/h/notcomp.h
+@@ -20,7 +20,7 @@ EXTER int interrupt_flag,interrupt_enabl
+ /* void sigint(),sigalrm(); */
+-EXTER bool gc_enabled, saving_system;
++EXTER bool gc_enabled, saving_system,leak_malloc_p;
+ EXTER object lisp_package,user_package;
+ EXTER char *core_end;
+@@ -28,7 +28,10 @@ EXTER int catch_fatal;
+ EXTER long real_maxpage;
+ EXTER char *this_lisp;
+-EXTER char stdin_buf[],stdout_buf[];
++#define EXTRA_BUFSIZE 8
++EXTER char stdin_buf[BUFSIZ + EXTRA_BUFSIZE];
++EXTER char stdout_buf[BUFSIZ + EXTRA_BUFSIZE];
++EXTER char stderr_buf[BUFSIZ + EXTRA_BUFSIZE];
+ EXTER object user_package;
+--- gcl27-2.7.1.orig/h/pool.h
++++ gcl27-2.7.1/h/pool.h
+@@ -123,6 +123,7 @@ close_pool(void) {
+     massert(!close(pool));
+     pool=-1;
+     massert(!munmap(Pool,sizeof(struct pool)));
++    Pool=NULL;
+     memset(gcl_pool,0,sizeof(gcl_pool));
+     no_recur=0;
+   }
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -1347,7 +1347,7 @@ object Icall_gen_error_handler(object,ob
+ void * gcl_gmp_alloc(size_t);
+-void init_gmp_rnd_state(__gmp_randstate_struct *);
++void init_gmp_rnd_state(__gmp_randstate_struct *,object);
+ int my_plt(const char *,unsigned long *);
+@@ -1483,12 +1483,6 @@ fixnum elt_size(fixnum);
+ fixnum elt_mode(fixnum);
+-void init_gmp_rnd_state(__gmp_randstate_struct *);
+-
+-/* void set_sgc_bit(struct pageinfo *,void *); */
+-
+-void reinit_gmp(void);
+-
+ object mod(object,object);
+ void intdivrem(object,object,fixnum,object *,object *);
+@@ -1679,3 +1673,5 @@ void *mdlopen(const char *,int);
+ void close_dlopen_list(void);
+ void set_global_env_defaults(void);
+ void disable_aslr(int,char **,char **);
++void set_leak_malloc_on(void);
++void set_leak_malloc_off(void);
+--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp
++++ gcl27-2.7.1/lsp/gcl_fpe.lsp
+@@ -139,7 +139,8 @@
+          (feclearexcept x)
+          (floating-point-error x (list* fun "unknown" name args) 0))))
+      (defun break-on-floating-point-exceptions 
+-       (&key suspend no-flush
++       (&rest all
++        &key suspend no-flush
+           ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+)
+         &aux r #+no-sigfpe(x (fetestexcept fpe-set)))
+        (fe-enable
+@@ -154,7 +155,9 @@
+                                           (0)))
+                                  +fe-list+))))))
+        #+no-sigfpe
+-       (unless (or no-flush (zerop x)) (floating-point-error x 0 0))
++       (unless (or no-flush (zerop x))
++       (let ((y 'break-on-floating-point-exceptions))
++         (floating-point-error x (list (symbol-function y) "unknown" y all) 0)))
+        r))
+ (defun subclasses (class)
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1696,28 +1696,76 @@ static char *baby_malloc(n)
+ /*  #endif */
+ bool writable_malloc=0;
++bool leak_malloc_p=1;
+ static void *malloc_pre_main_base,*malloc_pre_main_ptr,*malloc_pre_main_end;
++void
++set_leak_malloc_on(void) {
++
++  leak_malloc_p=1;
++
++}
++
++void
++set_leak_malloc_off(void) {
++
++  leak_malloc_p=0;
++  malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL;
++
++}
++
++static void *
++leak_malloc(size_t size) {
++
++  unsigned long s=1<<14;
++
++  if (!malloc_pre_main_base) {
++    massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1);
++    malloc_pre_main_ptr=malloc_pre_main_base;
++    malloc_pre_main_end=malloc_pre_main_base+s;
++  }
++
++  size=(size+sizeof(max_align_t)-1)&~(sizeof(max_align_t)-1);
++  massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr));
++
++  malloc_pre_main_ptr+=size;
++
++  return malloc_pre_main_ptr-size;
++
++}
++
++#define MALLOC_RETURN(_v) ({void *v=_v;recursive_malloc=0;return v;})
++
+ static void *
+ malloc_internal(size_t size) {
+-  if (!msbrk_initialized()) {
+-    static bool recursive_malloc;
+-    unsigned long s=PAGESIZE;
+-
+-    massert(!recursive_malloc);
+-    recursive_malloc=1;
+-    if (!malloc_pre_main_base) {
+-      massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1);
+-      malloc_pre_main_ptr=malloc_pre_main_base;
+-      malloc_pre_main_end=malloc_pre_main_base+s;
+-    }
+-    massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr));
+-    malloc_pre_main_ptr+=size;
+-    recursive_malloc=0;
+-    return malloc_pre_main_ptr-size;
+-  } else
+-    malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL;
++  static bool recursive_malloc;
++
++  massert(!recursive_malloc);
++  recursive_malloc=1;
++
++  /*GCL originally strove to capture all malloc memory in its heap to avoid interference
++   with its heap growth in limited address range contexts.  While static linking is still
++   possible, in most environments there will be external shared libraries in the address
++   space, and this is beneficial from a system performance perspective in any case.  GCL
++   goes to significant lengths to detect mmap_base and move it out of the way where possible
++   to allow for maximum contiguous heap growth (e.g. just under 3Gb on 32bit systems at
++   present).  Linking against libX11 at a minimum will call malloc before main via
++   constructors in that library.  Likewise dlopen of GCL's libboot.so will malloc early,
++   but after main.  Such calls as these have no effective cleanup routines available before
++   exit, and furthermore write aslr random data therein foiling reproducibility if saved
++   in the heap.  Such would be useless dead space on reexec if stored there in any case.
++   Traditionally we called gcl_init_alloc here, and this works, but it seems more advisable
++   to ring fence the aslr/shared library world into its own domain and store such mallocs
++   outside the heap in non-reclaimable memory (ie. leaked).  At present leak_malloc is only
++   used for the dlopen of libboot.so which is critical for a reproducible build, but wrapping
++   all dlopen thus may be advisable someday.  Right now the image dumps from raw image
++   runs, and from saved images with GCL_NO_TRUENAME set and in which the run just loads
++   .o files and saves are reproducible, which is sufficient for Debian gcl dependencies:
++   hol88,maxima,acl2,fricas and axiom.  CM 20260625*/
++
++  if (leak_malloc_p)
++    MALLOC_RETURN(leak_malloc(size));
+   CHECK_INTERRUPT;
+   
+@@ -1725,7 +1773,7 @@ malloc_internal(size_t size) {
+   malloc_list->c.c_car->st.st_self = alloc_contblock(size);
+   malloc_list->c.c_car->st.st_writable=writable_malloc;
+   
+-  return(malloc_list->c.c_car->st.st_self);
++  MALLOC_RETURN(malloc_list->c.c_car->st.st_self);
+ }
+@@ -1742,7 +1790,7 @@ free(void *ptr) {
+   object *p,pp;
+   
+-  if (ptr == 0 || ptr < data_start || ptr >= core_end)
++  if (ptr == 0 || ptr < data_start || ptr >= (void *)core_end)
+     return;
+   
+   for (p = &malloc_list,pp=*p; pp && !endp(pp);  p = &((pp)->c.c_cdr),pp=pp->c.c_cdr)
+--- gcl27-2.7.1.orig/o/cfun.c
++++ gcl27-2.7.1/o/cfun.c
+@@ -86,13 +86,23 @@ close_dlopen_list(void) {
+ void *
+ mdlopen(const char *name,int flags) {
+-  void *v=dlopen(name,flags);
++
++  void *v;
++  char *err;
++
++  set_leak_malloc_on();
++  v=dlopen(name,flags);
++  set_leak_malloc_off();
++  if ((err=dlerror()))
++    FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err));
+   if (name) {
+     object x=sSAdlopen_handlesA->s.s_dbind;
+     for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr);
+     if (x==Cnil)
+       sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind);
++    update_real_maxpage();
+   }
++
+   return v;
+ }
+@@ -145,19 +155,11 @@ DEFUN("DLADDR",object,fSdladdr,SI,2,2,NO
+ DEFUN("DLOPEN",object,fSdlopen,SI,1,1,NONE,OO,OO,OO,OO,(object name),"") {
+-  char *err;
+-  void *v;
+-
+   dlerror();
+   name=coerce_to_string(name);
+   massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>=0);
+-  v=dlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL);
+-  if ((err=dlerror()))
+-    FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err));
+-  update_real_maxpage();
+-  
+-  RETURN1(make_fixnum((fixnum)v));
++  RETURN1(make_fixnum((fixnum)mdlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL)));
+ }
+--- gcl27-2.7.1.orig/o/error.c
++++ gcl27-2.7.1/o/error.c
+@@ -32,6 +32,13 @@ object siSuniversal_error_handler;
+ object sSterminal_interrupt;
++#if defined(__APPLE__)
++char *
++strerrordesc_np(int errnum) {
++  return (errnum >= 0 && errnum < sys_nerr) ? sys_errlist[errnum] : "Unknown error";
++}
++#endif
++
+ void
+ assert_error(const char *a,unsigned l,const char *f,const char *n) {
+@@ -40,7 +47,7 @@ assert_error(const char *a,unsigned l,co
+           make_simple_string(a),make_fixnum(l),
+           make_simple_string(f),make_simple_string(n),make_simple_string(strerror(errno)));
+   else {
+-    emsg("The assertion %s on line %d of %s in function %s failed: %s",a,l,f,n,strerror(errno));
++    emsg("The assertion %s on line %d of %s in function %s failed: %s\n",a,l,f,n,strerrordesc_np(errno));
+     do_gcl_abort();
+   }
+--- gcl27-2.7.1.orig/o/gmp_big.c
++++ gcl27-2.7.1/o/gmp_big.c
+@@ -99,11 +99,9 @@ gcl_init_big1(void) {
+     mp_set_memory_functions( gcl_gmp_alloc,gcl_gmp_realloc,gcl_gmp_free);
+     jmp_gmp=0;
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+     Mersenne_Twister_Generator_Noseed.b=__gmp_randget_mt;
+     Mersenne_Twister_Generator_Noseed.c=__gmp_randclear_mt;
+     Mersenne_Twister_Generator_Noseed.d=__gmp_randiset_mt;
+-#endif
+ }
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -68,11 +68,6 @@ bool saving_system=FALSE;
+ char *system_directory;
+-#define EXTRA_BUFSIZE 8
+-char stdin_buf[BUFSIZ + EXTRA_BUFSIZE];
+-char stdout_buf[BUFSIZ + EXTRA_BUFSIZE];
+-char stderr_buf[BUFSIZ + EXTRA_BUFSIZE];
+-
+ #include "stacks.h"
+ int debug;                    /* debug switch */
+@@ -569,42 +564,47 @@ dir_name_length(const char *s) {
+ }
+ int initializing_boot=0;
++int in_pre_gcl=0;
+ void
+ init_boot(void) {
+-  char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self;
++  if (raw_image||in_pre_gcl) {
++
++    char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self;
+ #ifdef USE_LIBBOOT
+-  void *v,*q;
++    void *v,*q;
+ #endif
+-  char *z,*s="libboot.so";
+-  size_t m=sysd ? strlen(sysd) : dir_name_length(kcl_self),n=m+strlen(s)+1;
+-  object omp=sSAoptimize_maximum_pagesA->s.s_dbind;
+-
+-  sSAoptimize_maximum_pagesA->s.s_dbind=Cnil;
+-  z=alloca(n);
+-  snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s);
++    char *z,*s="libboot.so";
++    size_t m=sysd ? strlen(sysd) : dir_name_length(kcl_self),n=m+strlen(s)+1;
++    object omp=sSAoptimize_maximum_pagesA->s.s_dbind;
++
++    sSAoptimize_maximum_pagesA->s.s_dbind=Cnil;
++    z=alloca(n);
++    snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s);
+ #ifdef USE_LIBBOOT
+-  if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL)))
+-    printf("%s\n",dlerror());
+-  if (!(q=dlsym(v,"gcl_init_boot")))
+-    printf("%s\n",dlerror());
++    if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL)))
++      printf("%s\n",dlerror());
++    if (!(q=dlsym(v,"gcl_init_boot")))
++      printf("%s\n",dlerror());
+ #endif
+-  initializing_boot=1;
++    initializing_boot=1;
+ #ifndef USE_LIBBOOT
+-  {
+-    extern void gcl_init_boot(void);
+-    gcl_init_boot();
+-  }
++    {
++      extern void gcl_init_boot(void);
++      gcl_init_boot();
++    }
+ #else
+-  ((void (*)())q)();
++    ((void (*)())q)();
+ #endif
+-  initializing_boot=0;
+-  sSAoptimize_maximum_pagesA->s.s_dbind=omp;
++    initializing_boot=0;
++    sSAoptimize_maximum_pagesA->s.s_dbind=omp;
++  }
++
++  set_leak_malloc_off();
+ }
+-int in_pre_gcl=0;
+ object def_env1[2]={(object)1,Cnil},*def_env=def_env1+1;
+ object src_env1[2]={(object)1,Cnil},*src_env=src_env1+1;
+@@ -732,7 +732,7 @@ main(int argc, char **argv, char **envp)
+   ARGC = argc;
+   ARGV = argv;
+   ENVP = envp;
+-  
++
+   if (raw_image) {
+     printf("GCL (GNU Common Lisp)  %s  %ld pages\n",LISP_IMPLEMENTATION_VERSION,real_maxpage);
+@@ -761,7 +761,7 @@ main(int argc, char **argv, char **envp)
+     __stack_chk_guard=random_ulong();/*Cannot be safely set inside a function which returns*/
+ #endif
+-    if (in_pre_gcl) init_boot();
++    init_boot();
+   }
+--- gcl27-2.7.1.orig/o/num_rand.c
++++ gcl27-2.7.1/o/num_rand.c
+@@ -84,7 +84,6 @@ rando(object x, object rs) {
+ #define RS_DEF_INIT 0
+ #endif
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+ extern void * (*gcl_gmp_allocfun) (size_t);
+ static void * (*old_gcl_gmp_allocfun) (size_t);
+ static void * trap_result;
+@@ -103,52 +102,44 @@ trap_gcl_gmp_allocfun(size_t size){
+   }
+ }
+-#endif
+ void
+ reinit_gmp() {
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+   Mersenne_Twister_Generator_Noseed.b=__gmp_randget_mt;
+   Mersenne_Twister_Generator_Noseed.c=__gmp_randclear_mt;
+   Mersenne_Twister_Generator_Noseed.d=__gmp_randiset_mt;
+-#endif
+ }
+ void
+-init_gmp_rnd_state(__gmp_randstate_struct *x) {
++init_gmp_rnd_state(__gmp_randstate_struct *x,object rs) {
+   static int n;
+   bzero(x,sizeof(*x));
+   
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+-/*   if (!trap_size) { */
+   old_gcl_gmp_allocfun=gcl_gmp_allocfun;
+   gcl_gmp_allocfun=trap_gcl_gmp_allocfun;
+-/*   } */
+-#endif
+   gmp_randinit_default(x);
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+   if (!n) {
+     if (x->_mp_seed->_mp_d!=trap_result)
+       FEerror("Unknown pointer in rnd_state!",0);
+-/* #ifndef __hppa__ /\*FIXME*\/ */
+-/*     if (((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->b!=Mersenne_Twister_Generator_Noseed.b || */
+-/*    ((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->c!=Mersenne_Twister_Generator_Noseed.c || */
+-/*    ((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->d!=Mersenne_Twister_Generator_Noseed.d) */
+-/*       FEerror("Unknown pointer data in rnd_state!",0); */
+-/* #endif */
+     n=1;
+   }
+   gcl_gmp_allocfun=old_gcl_gmp_allocfun;
+   x->_mp_seed->_mp_alloc=x->_mp_seed->_mp_size=trap_size;
+-#endif
+-    
++
++  if (rs == Ct)
++    gmp_randseed_ui(x,RS_DEF_INIT);
++  else if (type_of(rs)==t_random)
++    memcpy(x->_mp_seed->_mp_d,rs->rnd.rnd_state._mp_seed->_mp_d,
++         rs->rnd.rnd_state._mp_seed->_mp_alloc*sizeof(*x->_mp_seed->_mp_d));
++
++  x->_mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed;
+ }
+@@ -168,18 +159,8 @@ make_random_state(object rs) {
+   }
+   
+   z = alloc_object(t_random);
+-  init_gmp_rnd_state(&z->rnd.rnd_state);
++  init_gmp_rnd_state(&z->rnd.rnd_state,rs);
+-    
+-  if (rs == Ct) 
+-    gmp_randseed_ui(&z->rnd.rnd_state,RS_DEF_INIT);
+-  else
+-    memcpy(z->rnd.rnd_state._mp_seed->_mp_d,rs->rnd.rnd_state._mp_seed->_mp_d,
+-         rs->rnd.rnd_state._mp_seed->_mp_alloc*sizeof(*z->rnd.rnd_state._mp_seed->_mp_d));
+-  
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+-  z->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed;
+-#endif
+   return(z);
+ }
+--- gcl27-2.7.1.orig/o/read.d
++++ gcl27-2.7.1/o/read.d
+@@ -1636,10 +1636,7 @@ Lsharp_dollar_reader()
+       x = read_object(vs_base[0]);
+       tx=type_of(x);
+       vs_base[0] = alloc_object(t_random);
+-      init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state);
+-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2)
+-      vs_base[0]->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed;
+-#endif
++      init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state,Cnil);
+       if (tx!=t_fixnum || fix(x)) {
+         if (tx==t_fixnum) {
+           if (vs_base[0]->rnd.rnd_state._mp_seed->_mp_size!=1)
+--- gcl27-2.7.1.orig/o/save.c
++++ gcl27-2.7.1/o/save.c
+@@ -34,9 +34,15 @@ LFD(siLsave)(void) {
+   /*FIXME clean this up when done*/
++  set_leak_malloc_on();
++
+   set_global_env_defaults();
+   shared_lib_start=NULL;
++  memset(&fcall,0,sizeof(fcall));
+   memset(gmp_jmp,0,sizeof(gmp_jmp));
++  memset(stdin_buf,0,sizeof(stdin_buf));
++  memset(stdout_buf,0,sizeof(stdout_buf));
++  memset(stderr_buf,0,sizeof(stderr_buf));
+   memset(frs_org,0,(frs_limit-frs_org)*sizeof(*frs_org));
+   memset(bds_org,0,(bds_limit-bds_org)*sizeof(*bds_org));
+   memset(ihs_org,0,(ihs_limit-ihs_org)*sizeof(*ihs_org));
+--- gcl27-2.7.1.orig/o/usig.c
++++ gcl27-2.7.1/o/usig.c
+@@ -155,7 +155,7 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable
+   x=feenableexcept(x);
+-#elif defined(__x86_64__) || defined(__i386__)
++#elif (defined(__x86_64__) && !defined(__gnu_hurd__)) || defined(__i386__)
+ #define ASM __asm__ __volatile__
+   {
+     volatile unsigned short s=0;
+@@ -194,7 +194,7 @@ DEFUN("FEDISABLEEXCEPT",object,fSfedisab
+   /* feclearexcept(FE_ALL_EXCEPT); */
+   x=fedisableexcept(FE_ALL_EXCEPT);
+-#elif defined(__x86_64__) || defined(__i386__)
++#elif (defined(__x86_64__) && !defined(__gnu_hurd__)) || defined(__i386__)
+ #define ASM __asm__ __volatile__
+   {
+     volatile unsigned int i=0;
diff --git a/debian/patches/Version_2_7_2pre34 b/debian/patches/Version_2_7_2pre34
new file mode 100644 (file)
index 0000000..49e38cf
--- /dev/null
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jun, 27 2026 17:46:15 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -7448,7 +7448,7 @@ if test ${enable_aslr+y}
+ then :
+   enableval=$enable_aslr; enable_aslr=$enableval
+ else case e in #(
+-  e) enable_asrl="yes" ;;
++  e) enable_aslr="yes" ;;
+ esac
+ fi
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -287,7 +287,7 @@ add_args_to_cflags  -fsigned-char -pipe
+ add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy
+ AC_ARG_ENABLE([aslr],[  --disable-aslr will ensure reproducible builds and/or work around absent no-pie],
+-            [enable_aslr=$enableval],[enable_asrl="yes"])
++            [enable_aslr=$enableval],[enable_aslr="yes"])
+ AC_MSG_CHECKING([whether aslr must be disabled due to absent -no-pie])
+ if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre33"
++"Version_2_7_2pre34"
diff --git a/debian/patches/Version_2_7_2pre35 b/debian/patches/Version_2_7_2pre35
new file mode 100644 (file)
index 0000000..436fb35
--- /dev/null
@@ -0,0 +1,598 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Jul, 05 2026 18:55:04 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+Bug-Debian: https://bugs.debian.org/1140970
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -210,7 +210,7 @@ gcl_tk_gcltkaux_SOURCES=$(GCLTK_SRC)
+ gcl_tk_gcltkaux_CPPFLAGS=$(AM_CPPFLAGS) $(TK_INCLUDE) $(TCL_INCLUDE) $(TK_XINCLUDES)
+ gcl_tk_gcltkaux_LDADD=$(TK_LIB_SPEC) $(TCL_LIB_SPEC)
+-MY_DIRS=gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl
++MY_DIRS=gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl0 ansi_gcl
+ L_STUBS=s sf c listlib predlib deftype typeof subtypep bit type typep typecase arraylib \
+         seq seqlib bnum fle dl rm nr lr sym hash sharp \
+@@ -285,8 +285,9 @@ unixport/gcl_cmpnopt_%_gprof.lsp: unixpo
+ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXME necessary?
+       touch $@
+ unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/%
+-      echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \
+-           "(compiler::dump-inl-hash \"$@\" t)" | $|
++      echo "(clrhash compiler::*inl-hash*)" \
++             "(mapc (quote load) (directory \"$*/*.hsh\"))" \
++           "(compiler::dump-inl-hash \"$@\")" | $|
+ $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \
+ unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o
+@@ -306,9 +307,14 @@ $(addprefix unixport/lib,$(addsuffix .a,
+ unixport/lib%.a: $(addprefix %/,$(L_OBJS))
+ unixport/libmod_gcl0.a unixport/libmod_gcl.a:\
+ unixport/lib%.a: $(addprefix %/,$(MOD_OBJS)) $(L_FOBJS) $(X_LIB)
+-unixport/libgcl.a unixport/libmod_gcl.a: unixport/lib%.a: %/recompile
+ unixport/libpcl_gcl.a: $(PCL_FOBJS)
+-unixport/libansi_gcl.a: $(ANSI_FOBJS)
++unixport/libansi_gcl0.a unixport/libansi_gcl.a: \
++unixport/lib%.a: $(addprefix %/,$(CLCS_OBJS)) $(PCL_FOBJS)
++
++unixport/libgcl.a unixport/libmod_gcl.a unixport/libansi_gcl.a: unixport/lib%.a: %/recompile
++gcl/recompile: $(L_FOBJS)
++mod_gcl/recompile: $(MOD_FOBJS)
++ansi_gcl/recompile: $(ANSI_FOBJS)
+ unixport/libgcl_gprof.a: $(patsubst %.o,%.go,$(L_FOBJS))
+ unixport/libansi_gcl_gprof.a: $(patsubst %.o,%.go,$(ANSI_FOBJS))
+@@ -319,6 +325,7 @@ unixport/lib%.a: | xbin/ar_merge
+ %/recompile: | unixport/%
+       $| -batch \
+          -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \
++         -eval "(mapc (quote delete-file) (directory \"$(@D)/*.hsh\"))" \
+          -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)"
+       touch $@
+@@ -334,11 +341,12 @@ unixport/gcl:  | unixport/saved_gcl3
+ unixport/mod_gcl0:  | unixport/saved_gcl
+ unixport/mod_gcl:  | unixport/saved_mod_gcl0
+ unixport/pcl_gcl:  | unixport/saved_mod_gcl
+-unixport/ansi_gcl:  | unixport/saved_pcl_gcl
++unixport/ansi_gcl0:  | unixport/saved_pcl_gcl
++unixport/ansi_gcl:  | unixport/saved_ansi_gcl0
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+       echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
+-$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
++$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl ansi_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+ unixport/mod_gcl0: xgcl-2/sysdef.lisp | mod_gcl0
+@@ -359,9 +367,9 @@ unixport/pcl_gcl: clcs/package.lisp cmpn
+             "(setq pcl::*pathname-extensions* (cons \"lisp\" \"o\"))" \
+             "(si::save-system \"$@\")" | $(word 2,$|)
+-unixport/ansi_gcl: clcs/package.lisp clcs/gcl_clcs_precom.lisp \
++unixport/ansi_gcl0: clcs/package.lisp clcs/gcl_clcs_precom.lisp \
+                  clcs/gcl_clcs_conditions.lisp clcs/gcl_clcs_condition_definitions.lisp \
+-                 | ansi_gcl
++                 | ansi_gcl0
+       echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \
+              "(compiler::cdebug)" \
+              "(si::save-system \"$@\")" | $(word 2,$|)
+@@ -388,12 +396,12 @@ gcl1/%.o: | unixport/gcl1
+ $(addprefix gcl2/,$(LL_OBJS)): gcl2/%.o : lsp/%.lsp
+ $(addprefix gcl2/,$(LC_OBJS)): gcl2/%.o : cmpnew/%.lsp
+ gcl2/%.o: | unixport/gcl2
+-      $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++      $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@
+ $(addprefix gcl3/,$(LL_OBJS)): gcl3/%.o : lsp/%.lsp
+ $(addprefix gcl3/,$(LC_OBJS)): gcl3/%.o : cmpnew/%.lsp
+ gcl3/%.o: | unixport/gcl3
+-      $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++      $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@
+ gcl/%.o: gcl3/%.o | gcl
+       cp $(patsubst %.o,%.*,$<) $(@D)
+@@ -406,7 +414,6 @@ mod_gcl0/%.o: | unixport/mod_gcl0
+ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod_gcl
+       cp $(patsubst %.o,%.*,$<) $(@D)
+-
+ %/c1: | unixport/%
+       echo "(pcl::compile-pcl)" | $|
+       touch $@
+@@ -450,9 +457,13 @@ $(addprefix pcl_gcl/,$(PCL_OBJS)): pcl_g
+       touch $@
+-ansi_gcl/%.o: clcs/%.lisp | unixport/ansi_gcl
++ansi_gcl0/%.o: clcs/%.lisp | unixport/ansi_gcl0
+       $| -eval "(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++ansi_gcl/%.o: ansi_gcl0/%.o | unixport/ansi_gcl
++      cp $(patsubst %.o,%.*,$<) $(@D)
++
++
+ %.go: %.o mod_gcl/recompile #FIXME parallel
+       $(CC) $(AM_CPPFLAGS) -I $(<D) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
+             -fno-omit-frame-pointer -pg -c $*.c -o $@
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -1100,7 +1100,7 @@ GCLTK_SRC = gcl-tk/guis.c gcl-tk/tkAppIn
+ gcl_tk_gcltkaux_SOURCES = $(GCLTK_SRC)
+ gcl_tk_gcltkaux_CPPFLAGS = $(AM_CPPFLAGS) $(TK_INCLUDE) $(TCL_INCLUDE) $(TK_XINCLUDES)
+ gcl_tk_gcltkaux_LDADD = $(TK_LIB_SPEC) $(TCL_LIB_SPEC)
+-MY_DIRS = gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl
++MY_DIRS = gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl0 ansi_gcl
+ L_STUBS = s sf c listlib predlib deftype typeof subtypep bit type typep typecase arraylib \
+         seq seqlib bnum fle dl rm nr lr sym hash sharp \
+       cmptype cmpeval cmpvar cmpwt cmpif \
+@@ -4624,8 +4624,9 @@ unixport/gcl_cmpnopt_%_gprof.lsp: unixpo
+ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXME necessary?
+       touch $@
+ unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/%
+-      echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \
+-           "(compiler::dump-inl-hash \"$@\" t)" | $|
++      echo "(clrhash compiler::*inl-hash*)" \
++             "(mapc (quote load) (directory \"$*/*.hsh\"))" \
++           "(compiler::dump-inl-hash \"$@\")" | $|
+ $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \
+ unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o
+@@ -4639,9 +4640,14 @@ $(addprefix unixport/lib,$(addsuffix .a,
+ unixport/lib%.a: $(addprefix %/,$(L_OBJS))
+ unixport/libmod_gcl0.a unixport/libmod_gcl.a:\
+ unixport/lib%.a: $(addprefix %/,$(MOD_OBJS)) $(L_FOBJS) $(X_LIB)
+-unixport/libgcl.a unixport/libmod_gcl.a: unixport/lib%.a: %/recompile
+ unixport/libpcl_gcl.a: $(PCL_FOBJS)
+-unixport/libansi_gcl.a: $(ANSI_FOBJS)
++unixport/libansi_gcl0.a unixport/libansi_gcl.a: \
++unixport/lib%.a: $(addprefix %/,$(CLCS_OBJS)) $(PCL_FOBJS)
++
++unixport/libgcl.a unixport/libmod_gcl.a unixport/libansi_gcl.a: unixport/lib%.a: %/recompile
++gcl/recompile: $(L_FOBJS)
++mod_gcl/recompile: $(MOD_FOBJS)
++ansi_gcl/recompile: $(ANSI_FOBJS)
+ unixport/libgcl_gprof.a: $(patsubst %.o,%.go,$(L_FOBJS))
+ unixport/libansi_gcl_gprof.a: $(patsubst %.o,%.go,$(ANSI_FOBJS))
+@@ -4652,6 +4658,7 @@ unixport/lib%.a: | xbin/ar_merge
+ %/recompile: | unixport/%
+       $| -batch \
+          -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \
++         -eval "(mapc (quote delete-file) (directory \"$(@D)/*.hsh\"))" \
+          -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)"
+       touch $@
+@@ -4667,11 +4674,12 @@ unixport/gcl:  | unixport/saved_gcl3
+ unixport/mod_gcl0:  | unixport/saved_gcl
+ unixport/mod_gcl:  | unixport/saved_mod_gcl0
+ unixport/pcl_gcl:  | unixport/saved_mod_gcl
+-unixport/ansi_gcl:  | unixport/saved_pcl_gcl
++unixport/ansi_gcl0:  | unixport/saved_pcl_gcl
++unixport/ansi_gcl:  | unixport/saved_ansi_gcl0
+ $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | %
+       echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|)
+-$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | %
++$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl ansi_gcl): unixport/% : | %
+       ln -snf $$(basename $(word 2,$|)) $@
+ unixport/mod_gcl0: xgcl-2/sysdef.lisp | mod_gcl0
+@@ -4692,9 +4700,9 @@ unixport/pcl_gcl: clcs/package.lisp cmpn
+             "(setq pcl::*pathname-extensions* (cons \"lisp\" \"o\"))" \
+             "(si::save-system \"$@\")" | $(word 2,$|)
+-unixport/ansi_gcl: clcs/package.lisp clcs/gcl_clcs_precom.lisp \
++unixport/ansi_gcl0: clcs/package.lisp clcs/gcl_clcs_precom.lisp \
+                  clcs/gcl_clcs_conditions.lisp clcs/gcl_clcs_condition_definitions.lisp \
+-                 | ansi_gcl
++                 | ansi_gcl0
+       echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \
+              "(compiler::cdebug)" \
+              "(si::save-system \"$@\")" | $(word 2,$|)
+@@ -4721,12 +4729,12 @@ gcl1/%.o: | unixport/gcl1
+ $(addprefix gcl2/,$(LL_OBJS)): gcl2/%.o : lsp/%.lsp
+ $(addprefix gcl2/,$(LC_OBJS)): gcl2/%.o : cmpnew/%.lsp
+ gcl2/%.o: | unixport/gcl2
+-      $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++      $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@
+ $(addprefix gcl3/,$(LL_OBJS)): gcl3/%.o : lsp/%.lsp
+ $(addprefix gcl3/,$(LC_OBJS)): gcl3/%.o : cmpnew/%.lsp
+ gcl3/%.o: | unixport/gcl3
+-      $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++      $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@
+ gcl/%.o: gcl3/%.o | gcl
+       cp $(patsubst %.o,%.*,$<) $(@D)
+@@ -4781,9 +4789,12 @@ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod
+ $(addprefix pcl_gcl/,$(PCL_OBJS)): pcl_gcl/all.hsh 
+       touch $@
+-ansi_gcl/%.o: clcs/%.lisp | unixport/ansi_gcl
++ansi_gcl0/%.o: clcs/%.lisp | unixport/ansi_gcl0
+       $| -eval "(setq compiler::*dump-inl-hash* t)" -compile $< -o $@
++ansi_gcl/%.o: ansi_gcl0/%.o | unixport/ansi_gcl
++      cp $(patsubst %.o,%.*,$<) $(@D)
++
+ %.go: %.o mod_gcl/recompile #FIXME parallel
+       $(CC) $(AM_CPPFLAGS) -I $(<D) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
+             -fno-omit-frame-pointer -pg -c $*.c -o $@
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -619,7 +619,7 @@
+   (if (unless (type-and t1 t2) (and a1 a2 (listp t1) (listp t2) (equal (car t1) (car t2))))
+       (car t1) (type-or1 t1 t2)))
+-(defun coalesce-inl (cl inl tps rt &aux (lev (this-safety-level)))
++(defun coalesce-inl (cl inl tps rt lev);&aux (lev (this-safety-level))
+   (when (> lev (third inl))
+     (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-coalesce)
+                  "Coalescing safety ~s: ~s ~s" (car cl) (third inl) lev)
+@@ -694,7 +694,7 @@
+ (defun merge-inl (cl inl pl &aux (tps (pop inl))(tr (pop inl)))
+   (let ((z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl))))
+-    (cond (z (coalesce-inl cl (car z) tps (cdr (third inl)))
++    (cond (z (coalesce-inl cl (car z) tps (cdr (third inl)) (car inl))
+            (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z))))
+         (pl (let ((x (list* tps tr inl)))
+               (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add)
+@@ -766,25 +766,86 @@
+         x)))))
+-(defun compress-inl (s &aux (i (car (gethash s *inl-hash*))))
+-  (when (> (length i) 1)
+-    (let ((l (length i))
+-        (x (reduce (lambda (y x)
+-                     (list
+-                      (mapl (lambda (z w) (setf (car z) (type-or1 (car z) (car w))))
+-                            (car y) (car x))
+-                      (max (cadr y) (third x))))
+-                   (cdr i) :initial-value (list (copy-list (caar i)) (third (car i)))))
+-        (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) (make-list (length (caar i))))))
+-      (compile nil `(lambda ,syms
+-                    (declare (optimize (safety ,(cadr x)))
+-                             ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) (car x) syms))
+-                    (,s ,@syms)))
+-      (when (< (length (car (gethash s *inl-hash*))) l)
+-      (format t "compress-inl ~s: ~s -> ~s~%" s l (length (car (gethash s *inl-hash*))))))))
++(defvar *ncompiles* 0)
+-(defun dump-inl-hash (f &optional compress &aux (si::*print-package* t))
+-  (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*))
++(defun try-compile (nm s tps
++                  &aux (*sig-discovery* t)
++                    *compile-verbose*
++                    (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) tps)))
++  (incf *ncompiles*)
++  (compile nil `(lambda ,syms
++                (declare (optimize (safety ,s)))
++                (declare ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) tps syms))
++                (,nm ,@syms))))
++
++(defun extend-arg-tps (at tps s)
++  (let* ((st (member '* at))
++       (at (ldiff at st))
++       (at (if (< s 2) at (make-list (length at) :initial-element #tt))))
++    (append at
++          (when st
++            (make-list (- (length tps) (length at)) :initial-element #tt)))))
++
++(defun restrict-inl-1-tps (nm at inls)
++  (mapc (lambda (inl)
++        (mapl (lambda (ptp pstp &aux (tp (car ptp))(stp (car pstp)))
++                (unless (tp<= tp stp)
++                  (let ((ntp (tp-and tp stp)))
++                    (print (list nm (caddr inl) (cmp-unnorm-tp tp) 'to (cmp-unnorm-tp ntp)))
++                    (setf (car ptp) ntp))))
++                (car inl)
++                (extend-arg-tps at (car inl) (caddr inl))))
++      (car inls)))
++
++(defun iterate-over-inls (nm at &optional (it 0)
++                        &aux (inls (copy-tree (get-inl-list (list nm))))
++                          (have-2 (member 2 (car inls) :key 'caddr)))
++
++  (flet ((try (s tps chg) ;(print (list 'trying nm s (mapcar 'cmp-unnorm-tp tps)))
++         (try-compile nm s tps)
++         (unless (equal inls (get-inl-list (list nm)))
++           (print (list nm s (mapcar 'cmp-unnorm-tp tps) chg))
++           (return-from iterate-over-inls (iterate-over-inls nm at (1+ it))))))
++    (mapc (lambda (inl &aux (tps (copy-list (car inl))))
++          (when (eql 0 (caddr inl))
++            (try 1 (car inl) (list 0 '-> 1)))
++          (mapl (lambda (ptp pstp &aux (tp (car ptp))(stp (car pstp)))
++                  (unless (tp>= tp stp)
++                    (let ((ntp (tp-and stp (or (parent tp) t))))
++                      (setf (car ptp) ntp)
++                      (try (caddr inl) tps (list (cmp-unnorm-tp tp) '-> (cmp-unnorm-tp ntp)))
++                      (setf (car ptp) tp))))
++                tps (extend-arg-tps at tps (caddr inl)))
++          (unless have-2
++            (when (eq (caddr inl) 1)
++              (try 2 (car inl) (list 1 '-> 2))
++              (let ((tps (copy-list (car inl))))
++                (mapl (lambda (ptp &aux (tp (car ptp)))
++                        (mapc (lambda (c)
++                                (setf (car ptp) c)
++                                (try 2 tps (list (cmp-unnorm-tp tp) '-> (cmp-unnorm-tp c))))
++                              (all-children tp))
++                        (setf (car ptp) tp))
++                      tps)))))
++        (car inls))
++    it))
++
++(defun finalize-inls (nm &aux (*ncompiles* 0)(at (get-arg-types nm))(inls (get-inl-list (list nm))))
++  (restrict-inl-1-tps nm at inls)
++  (list (iterate-over-inls nm at) *ncompiles*  (show-inls nm)))
++
++(defun finalize-all-inls (&aux redo)
++  (maphash (lambda (x y)
++           (declare (ignore y))
++           (unless (zerop (car (finalize-inls x)))
++             (setq redo t)))
++         *inl-hash*)
++  (when redo
++    (finalize-all-inls)))
++
++(defun dump-inl-hash (f &optional finalize &aux (si::*print-package* t))
++  (when finalize (finalize-all-inls))
++;  (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*))
+   (with-open-file (s f :direction :output)
+     (prin1 '(in-package :compiler) s)
+     (terpri s)
+@@ -800,9 +861,9 @@
+                                     (list ,@(mapcan
+                                              (lambda (x)
+                                                `((list ',(pop x) ',(pop x) ',(mapcar 'export-type (car x)))))
+-                                             (cadr z)))
++                                             (sort (cadr z) '< :key (lambda (x) (hash-equal x -5)))))
+                                     ,(caddr z)))
+-                           (car y))))
++                           (sort (car y) '< :key (lambda (x) (hash-equal x -5))))))
+               s)
+              (terpri s))
+         (let (r)
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1 +1 @@
+-"Version_2_7_2pre34"
++"Version_2_7_2pre35"
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -1670,7 +1670,6 @@ int msbrk_end(void);
+ object quick_call_function_vec(object,ufixnum,object *);
+ int msbrk_initialized(void);
+ void *mdlopen(const char *,int);
+-void close_dlopen_list(void);
+ void set_global_env_defaults(void);
+ void disable_aslr(int,char **,char **);
+ void set_leak_malloc_on(void);
+--- gcl27-2.7.1.orig/lsp/gcl_callhash.lsp
++++ gcl27-2.7.1/lsp/gcl_callhash.lsp
+@@ -290,7 +290,7 @@
+   (dolist (s (gen-all-ftype-symbols))
+     (let* ((f (or (file s) ""))
+          (sig (car (sym-plist s))))
+-      (when (and sig (member f fl :test 'string=));e.g. fns in o/, interpreted, wrong-file
++      (when (and sig (member f fl :test 'search));e.g. fns in o/, interpreted, wrong-file
+       (push (list s sig) r))))
+   (write-sys-proclaims1 sp r))
+--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp
++++ gcl27-2.7.1/lsp/gcl_iolib.lsp
+@@ -533,6 +533,7 @@
+ (declaim (inline byte-index))
+ (defun byte-index (k n)
++  #+:clx-little-endian (declare (ignore n))
+   #+:clx-little-endian k #-:clx-little-endian (- n 1 k))
+ (defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s)))
+--- gcl27-2.7.1.orig/lsp/gcl_mnum.lsp
++++ gcl27-2.7.1/lsp/gcl_mnum.lsp
+@@ -66,12 +66,12 @@
+ (defdlfun (:double    "carg"     ) :dcomplex)
+ (defun bsqrt (x);this is an instruction, or a jump to main body
+-  (declare (long-float x))
++  (check-type x long-float)
+   (lit :double "sqrt(" (:double x) ")"))
+ (setf (get 'bsqrt 'compiler::cmp-inline) t)
+ (defun bsqrtf (x);this is an instruction, or a jump to main body
+-  (declare (short-float x))
++  (check-type x short-float)
+   (lit :float "sqrtf(" (:float x) ")"))
+ (setf (get 'bsqrtf 'compiler::cmp-inline) t)
+--- gcl27-2.7.1.orig/lsp/gcl_subtypep.lsp
++++ gcl27-2.7.1/lsp/gcl_subtypep.lsp
+@@ -601,8 +601,10 @@
+     (cond ((ntp-subtp x m) x)
+         ((unless ux (ntp-subtp xy xx)) oy)
+         ((unless uy (ntp-subtp xx xy)) ox)
+-        ((list (list x m `(and ,(if ux (car lx) (car (nreconstruct-type ox)))
+-                               ,(if uy (car ly) (car (nreconstruct-type oy)))))
++        ((list (list x m
++                     (let ((x (if ux (car lx) (car (nreconstruct-type ox))))
++                           (y (if uy (car ly) (car (nreconstruct-type oy)))))
++                       (if (equal x y) x `(and ,x ,y))))
+                d t)))))
+ (defun ntp-or-unknown (ox lx ux oy ly uy d)
+@@ -611,8 +613,10 @@
+     (cond ((ntp-subtp x m) x)
+         ((unless ux (ntp-subtp mx my)) oy)
+         ((unless uy (ntp-subtp my mx)) ox)
+-        ((list (list x m `(or ,(if ux (car lx) (car (nreconstruct-type ox)))
+-                              ,(if uy (car ly) (car (nreconstruct-type oy)))))
++        ((list (list x m
++                     (let ((x (if ux (car lx) (car (nreconstruct-type ox))))
++                           (y (if uy (car ly) (car (nreconstruct-type oy)))))
++                       (if (equal x y) x `(or ,x ,y))))
+                d t)))))
+ (defun ntp-and?c2-nil-p (x y ?c2)
+--- gcl27-2.7.1.orig/lsp/gcl_type.lsp
++++ gcl27-2.7.1/lsp/gcl_type.lsp
+@@ -4,7 +4,7 @@
+ (export '(cmp-norm-tp tp-p
+         cmp-unnorm-tp
+ ;       type-and type-or1 type>= type<=
+-        tp-not tp-and tp-or tp<= tp>= tp= uniq-tp tsrch uniq-sig
++        tp-not tp-and tp-or tp<= tp>= tp= uniq-tp tsrch parent all-children uniq-sig
+         atomic-tp tp-bnds object-tp
+         cmpt t-to-nil returs-exactly funcallable-symbol-function
+         infer-tp cnum creal long
+@@ -758,6 +758,23 @@
+     (when x
+       (or (tsrch tp (cdar x)) (caar x)))))
++(defun parent (tp &optional (y *useful-type-tree*))
++  (let ((x (member tp y :test (lambda (x y) (unless (tp<= y x) (tp<= x y))) :key 'car)))
++    (when x
++      (or (parent tp (cdar x)) (caar x)))))
++
++(defun children (tp &optional (y (list (cons #tt *useful-type-tree*))))
++  (let ((x (member tp y :test 'tp<= :key 'car)))
++    (when x
++      (or (children tp (cdar x)) (cdar x)))))
++
++(defun flatten-children (c)
++  (mapcan (lambda (x) (cons (car x) (flatten-children (cdr x)))) c))
++
++(defun all-children (tp)
++  (remove-duplicates (flatten-children (children tp))))
++
++
+ (defvar *uniq-tp* (make-hash-table :test 'eq))
+ (defun uniq-tp (tp)
+--- gcl27-2.7.1.orig/o/alloc.c
++++ gcl27-2.7.1/o/alloc.c
+@@ -1841,12 +1841,12 @@ realloc(void *ptr, size_t size) {
+       VFILLP_SET(x,size);
+       return(ptr);
+       } else {
+-      memset(x->st.st_self,0,x->st.st_dim);
+       x->st.st_self = alloc_contblock(size);
++      for (i = 0;  i < x->st.st_dim;  i++)
++        x->st.st_self[i] = ((char *)ptr)[i];
++      memset(ptr,0,x->st.st_dim);
+       x->st.st_dim = size;
+       VSET_MAX_FILLP(x);
+-      for (i = 0;  i < size;  i++)
+-        x->st.st_self[i] = ((char *)ptr)[i];
+       return(x->st.st_self);
+       }
+     }
+--- gcl27-2.7.1.orig/o/cfun.c
++++ gcl27-2.7.1/o/cfun.c
+@@ -76,14 +76,6 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O
+   RETURN1(Cnil);
+ }
+-DEFVAR("*DLOPEN-HANDLES*",sSAdlopen_handlesA,SI,Cnil,"");
+-
+-void
+-close_dlopen_list(void) {
+-  for (;sSAdlopen_handlesA->s.s_dbind!=Cnil;sSAdlopen_handlesA->s.s_dbind=sSAdlopen_handlesA->s.s_dbind->c.c_cdr)
+-    dlclose((void *)fix(sSAdlopen_handlesA->s.s_dbind->c.c_car));
+-}
+-
+ void *
+ mdlopen(const char *name,int flags) {
+@@ -95,13 +87,8 @@ mdlopen(const char *name,int flags) {
+   set_leak_malloc_off();
+   if ((err=dlerror()))
+     FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err));
+-  if (name) {
+-    object x=sSAdlopen_handlesA->s.s_dbind;
+-    for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr);
+-    if (x==Cnil)
+-      sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind);
++  if (name)
+     update_real_maxpage();
+-  }
+   return v;
+ }
+--- gcl27-2.7.1.orig/o/error.c
++++ gcl27-2.7.1/o/error.c
+@@ -33,7 +33,7 @@ object siSuniversal_error_handler;
+ object sSterminal_interrupt;
+ #if defined(__APPLE__)
+-char *
++const char *
+ strerrordesc_np(int errnum) {
+   return (errnum >= 0 && errnum < sys_nerr) ? sys_errlist[errnum] : "Unknown error";
+ }
+--- gcl27-2.7.1.orig/o/save.c
++++ gcl27-2.7.1/o/save.c
+@@ -21,17 +21,17 @@ LFD(siLsave)(void) {
+   extern void *shared_lib_start;
+   extern jmp_buf gmp_jmp;
+   extern object sSreset_lib_syms;
++  object x=vs_base[0];
+   check_arg(1);
+-  memset(FN1,0,sizeof(FN1));
+-  coerce_to_filename(vs_base[0], FN1);
+-
+   ifuncall1(sSreset_lib_syms,Cnil);
+-  close_dlopen_list();
+   frs_top=frs_org-1;
+   gcl_cleanup(1);
++  memset(FN1,0,sizeof(FN1));
++  coerce_to_filename(x,FN1);
++
+   /*FIXME clean this up when done*/
+   set_leak_malloc_on();
+--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in
++++ gcl27-2.7.1/unixport/init_raw.lsp.in
+@@ -55,6 +55,7 @@
+        (lsp (append x (list "lsp")))
+        (cmpnew (append x (list "cmpnew")))
+        (h (append x (list "h")))
++       (u (append x (list "unixport")))
+        (xgcl-2 (append x (list "xgcl-2")))
+        (pcl (append x (list "pcl")))
+        (clcs (append x (list "clcs")))
+@@ -64,7 +65,7 @@
+   (load (make-pathname :name "tk-package" :type "lsp" :directory gtk))
+   (load (make-pathname :name "gcl_lfun_list" :type "lsp" :directory cmpnew))
+   (load (make-pathname :name "gcl_cmpopt" :type "lsp" :directory cmpnew))
+-  (let* ((x (merge-pathnames (make-pathname :name "gcl_cmpnopt" :type "lsp") *system-directory*)))
++  (let* ((x (make-pathname :name "gcl_cmpnopt" :type "lsp" :directory u)))
+     (when (probe-file x) (load x)))
+   (load (make-pathname :name "gcl_auto_new" :type "lsp" :directory lsp))
+   
diff --git a/debian/patches/Version_2_7_2pre5 b/debian/patches/Version_2_7_2pre5
new file mode 100644 (file)
index 0000000..c0e1619
--- /dev/null
@@ -0,0 +1,157 @@
+Description: Update to git tag Version_2_7_2pre5
+ Git tag update
+Forwarded: not-needed
+Author: Camm Maguire <camm@debian.org>
+
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2ore3"
++"Version_2_7_2ore5"
+--- gcl27-2.7.1.orig/h/cstack.h
++++ gcl27-2.7.1/h/cstack.h
+@@ -16,40 +16,31 @@
+ #define SET_STACK_POINTER "mov %0,r15\n\t"
+ #endif
+-#define FIXED_STACK (1UL<<23)/*FIXME configure?*/
+-#if defined(__SH4__)/*FIXME is this just due to qemu?*/
+-#define CTOP (void *)0x80000000
+-#define SS FIXED_STACK
++#define CTOP (void *)0xc0000000/*FIXME configure?*/
++#define MIN_STACK (1UL<<23)/*QEMU will not grow the stack*/
++
++#if defined(__SH4__)
++#undef CTOP
++#define CTOP (void *)0x80000000/*FIXME is this just due to qemu?*/
+ #elif defined(__gnu_hurd__)
+-#define CTOP (void *)0xc0000000
+-#define SS FIXED_STACK
+ #define MAP_GROWSDOWN 0
+ #define MAP_STACK 0
+-#else
+-#define CTOP (void *)0xc0000000/*FIXME configure?*/
+-#define SS getpagesize()
+ #endif
+ #ifdef SET_STACK_POINTER
+ {
+-  void *p,*p1,*b,*s;
++  void *p,*p1,*b=CTOP-MIN_STACK,*s;
+   int a,f=MAP_FIXED|MAP_PRIVATE|MAP_ANON|MAP_STACK;
+-  int ss=
+-#ifdef CHECK_FOR_QEMU
+-    qemu_p() ? FIXED_STACK :
+-#endif
+-    SS;
+   p=alloca(1);
+   p1=alloca(1);
+-  b=CTOP-(p1<p ? ss : FIXED_STACK);
+   a=p1<p ? p-p1 : p1-p;
+-  a<<=2;
++  a<<=3;
+   s=p1<p ? CTOP-a : b+a;
+   if (p1<p) f|=MAP_GROWSDOWN;
+   if (p > CTOP || p < b) {
+-    if (mmap(b,ss,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) {
++    if (mmap(b,MIN_STACK,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) {
+       stack_map_base=b;
+       asm volatile (SET_STACK_POINTER::"r" (s):"memory");
+       if (p1>p)
+--- gcl27-2.7.1.orig/h/elf64_alpha_reloc_special.h
++++ gcl27-2.7.1/h/elf64_alpha_reloc_special.h
+@@ -94,7 +94,7 @@ find_special_params(void *v,Shdr *sec1,S
+ static int
+ label_got_symbols(void *v1,Shdr *sec1,Shdr *sece,Sym *sym1,Sym *syme,const char *st1,const char *sn,ul *gs) {
+-  Sym *sym,*fsym=sym1;
++  Sym *sym;
+   Rela *r;
+   Shdr *sec;
+   void *v,*ve;
+@@ -142,12 +142,9 @@ label_got_symbols(void *v1,Shdr *sec1,Sh
+       case R_ALPHA_GPDISP:
+-        for (sym=fsym;sym<syme && (sym->st_shndx!=1 || LOW(sym->st_value)!=r->r_offset);sym++);/*ordered search*/
+-
+-        if (sym<syme) {
+-          fsym=sym;
+-          SET_HIGH(fsym->st_value,gotp=*gs+1);
+-        }
++        for (sym=sym1;sym<syme && (sym->st_shndx!=1 || !LOW(sym->st_size) || LOW(sym->st_value)!=r->r_offset);sym++);
++        if (sym<syme)
++          SET_HIGH(sym->st_value,gotp=*gs+1);
+         SET_HIGH(r->r_addend,gotp);
+@@ -157,9 +154,8 @@ label_got_symbols(void *v1,Shdr *sec1,Sh
+         q=LOW(sym1[ELF_R_SYM(r->r_info)].st_value)+r->r_addend;
+-        /*unordered search*/
+-        for (sym=sym1;sym<syme && (sym->st_shndx!=1 || LOW(sym->st_value)>q || LOW(sym->st_value)+LOW(sym->st_size)<q);sym++);
+-        massert(sym<syme);
++        for (sym=sym1;sym<syme && (sym->st_shndx!=1 || LOW(sym->st_value)>q || LOW(sym->st_value)+LOW(sym->st_size)<=q);sym++);
++        massert(sym<syme && HIGH(sym->st_value));
+         SET_HIGH(r->r_addend,HIGH(sym->st_value));
+--- gcl27-2.7.1.orig/lsp/gcl_directory.lsp
++++ gcl27-2.7.1/lsp/gcl_directory.lsp
+@@ -75,8 +75,7 @@
+   (let ((r (with-open-file (s (apply 'string-concatenate "|" #-winnt "command -v "
+                                    #+winnt "for %i in (" s #+winnt ".exe) do @echo.%~$PATH:i" nil))
+                          (read-line s nil 'eof))))
+-    (unless (eq r 'eof)
+-      (string-downcase r))))
++    (unless (eq r 'eof) r)))
+ (defun get-path (s &aux
+                  (e (unless (minusp (string-match #v"([^\n\t\r ]+)([\n\t\r ]|$)" s))(match-end 1)))
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -407,32 +407,6 @@ setup_maxpages(double scale) {
+ }
+-int
+-qemu_p(void)  {
+-
+-#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/
+-
+-  char *c;
+-  ufixnum e,r=0;
+-  int l;
+-
+-  massert((l=open("/proc/cpuinfo",O_RDONLY))!=-1);
+-
+-  for (e=0;!e && (c=next_line(l,&r));)
+-    e=!memcmp("model",c,5) && strstr(c,"QEMU");
+-
+-  massert(!close(l));
+-
+-  return e;
+-
+-#else
+-
+-  return 0;
+-
+-#endif
+-}
+-
+-
+ static void *
+ next_shared_lib_map_no_malloc(void)  {
+@@ -753,7 +727,6 @@ main(int argc, char **argv, char **envp)
+   bds_top = bds_org-1;
+   frs_top = frs_org-1;
+-#define CHECK_FOR_QEMU
+ #include "cstack.h"
+   gcl_init_alloc(alloca(1));
diff --git a/debian/patches/Version_2_7_2pre6 b/debian/patches/Version_2_7_2pre6
new file mode 100644 (file)
index 0000000..d49a45b
--- /dev/null
@@ -0,0 +1,419 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ gcl27 (2.7.1-7) unstable; urgency=medium
+ .
+   * Version_2_7_2pre6
+   * Bug fix: "[INTL:nl] Dutch debconf templates translation", thanks to Frans Spiesschaert (Closes: #1106482).
+Author: Camm Maguire <camm@debian.org>
+Bug-Debian: https://bugs.debian.org/1106482
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+Last-Update: 2025-05-29
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -270,7 +270,7 @@ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXM
+       touch $@
+ unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/%
+       echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \
+-           "(compiler::dump-inl-hash \"$@\")" | $|
++           "(compiler::dump-inl-hash \"$@\" t)" | $|
+ $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \
+ unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o
+@@ -302,7 +302,7 @@ unixport/lib%.a: | xbin/ar_merge
+ %/recompile: | unixport/%
+       $| -batch \
+          -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \
+-         -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\")"
++         -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)"
+       touch $@
+ unixport/sys_%.o: unixport/sys_init.c
+@@ -418,7 +418,7 @@ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod
+       rm -rf $*/*.o
+       echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \
+            "(pcl::compile-pcl)" \
+-           "(compiler::dump-inl-hash \"$@\")" | $|
++           "(compiler::dump-inl-hash \"$@\" t)" | $|
+ %/all.hsh: %/p1.lisp %/all.hs1 | unixport/pcl_gcl
+       echo "pcl conflicts:"
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4701,7 +4701,7 @@ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXM
+       touch $@
+ unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/%
+       echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \
+-           "(compiler::dump-inl-hash \"$@\")" | $|
++           "(compiler::dump-inl-hash \"$@\" t)" | $|
+ $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \
+ unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o
+@@ -4728,7 +4728,7 @@ unixport/lib%.a: | xbin/ar_merge
+ %/recompile: | unixport/%
+       $| -batch \
+          -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \
+-         -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\")"
++         -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)"
+       touch $@
+ unixport/sys_%.o: unixport/sys_init.c
+@@ -4843,7 +4843,7 @@ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod
+       rm -rf $*/*.o
+       echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \
+            "(pcl::compile-pcl)" \
+-           "(compiler::dump-inl-hash \"$@\")" | $|
++           "(compiler::dump-inl-hash \"$@\" t)" | $|
+ %/all.hsh: %/p1.lisp %/all.hs1 | unixport/pcl_gcl
+       echo "pcl conflicts:"
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp
+@@ -648,6 +648,7 @@
+   (list (this-safety-level)
+       (mapcar (lambda (x) (assert (eq (car x) 'ub)) (third x)) (when lf (fifth form)))
+       (cons (when lf (third form)) (info-type (cadr form)))
++      (ninth form)
+       (if lf (remove-comment (fourth form)) "")))
+ (defun cl-to-fn (cl)
+@@ -672,33 +673,77 @@
+                          (when (eql (length x) (length cy))
+                            (every 'type<= x cy))))))))
++(defun skip-inl (fm tps tr)
++  (or (member-if 'atomic-tp tps)
++      (atomic-tp (info-type (cadr fm)))
++      (exit-to-fmla-p)
++      (member nil tr)
++      (set-difference
++       (let ((i -1)) (mapcan (lambda (x &aux (y (incf i))) (unless (atomic-tp x) (list y))) tps))
++       tr)))
++
++(defun ?update-fm-propagator (fm cl tr tps)
++  (when (symbolp (car cl))
++    (when (get (car cl) 'type-propagator);?more
++      (when (eq (car fm) 'lit)
++      (when (member-if 'integerp tr) ;otherwise no point
++        (push (list (car cl) tr tps) (ninth fm)))))))
++
++(defun merge-inl (cl inl pl &aux (tps (pop inl))(tr (pop inl)))
++  (let ((z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl))))
++    (cond (z (coalesce-inl cl (car z) tps (cdr (third inl)))
++           (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z))))
++        (pl (let ((x (list* tps tr inl)))
++              (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add)
++                             "Adding inl-hash ~s: ~s" (car cl) x)
++              (push x (car pl)))))))
++
++(defun merge-inls (s inls &aux (cl (list s))(pl (get-inl-list cl t)))
++  (mapc (lambda (x) (merge-inl cl x pl)) inls))
++
+ (defun ?add-inl (cl fms fm)
+-  (unless (or (member-if 'atomic-tp fms :key (lambda (x) (info-type (caddr x))))
+-            (atomic-tp (info-type (cadr fm))) (exit-to-fmla-p)); (inls-match cl fms)
+-    (let* ((tps (mapcar (lambda (x) (info-type (caddr x))) fms))
+-         (tr (mapcar (lambda (x &aux (v (car (last x))))
+-                       (when (and (consp v) (eq (car v) 'var))
+-                         (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME
+-                     (if (eq (car fm) 'var) (list (list fm)) (fifth fm))))
+-         (nat (let ((i -1)) (mapcan (lambda (x &aux (y (incf i))) (unless (atomic-tp x) (list y))) tps))))
+-      (unless (or (member nil tr) (set-difference nat tr))
+-      (let* ((pl (get-inl-list cl t))
+-             (inl (lit-inl2 fm))
+-             (z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl))))
+-        (cond (z (coalesce-inl cl (car z) tps (cdr (third inl)))
+-                 (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z))))
+-              (pl
+-               (let ((x (list* tps tr inl)))
+-                 (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add)
+-                                "Adding inl-hash ~s: ~s" (car cl) x)
+-                 (push x (car pl))))))))))
++  (let* ((tps (mapcar (lambda (x) (info-type (caddr x))) fms))
++       (tr (mapcar (lambda (x &aux (v (car (last x))))
++                     (when (and (consp v) (eq (car v) 'var))
++                       (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME
++                   (if (eq (car fm) 'var) (list (list fm)) (fifth fm)))))
++    (?update-fm-propagator fm cl tr tps)
++    (unless (skip-inl fm tps tr)
++      (merge-inl cl (list* tps tr (lit-inl2 fm)) (get-inl-list cl t)))))
+ (defun prepend-comment (form s)
+   (if *annotate*
+       (si::string-concatenate "/* " (prin1-to-string form) " */" (remove-comment s))
+       s))
+-(defun apply-inl (cl fms &aux (inl (inls-match cl fms)))
++(defvar *apply-inl-hash* t)
++
++(defun update-info-type-from-inl (i inl fms &aux (tps (mapcar (lambda (x) (info-type (caddr x))) fms)))
++  (setf (info-type i)
++      (reduce 'type-and
++              (cons (cdr (fifth inl))
++                    (mapcar (lambda (x)
++                              (or
++                               (result-type-from-args
++                                (pop x)
++                                (let ((i -1))
++                                  (mapcar (lambda (tp &aux (p (position (incf i) (car x))))
++                                            (if p (nth (nth p (second inl)) tps) tp))
++                                          (cadr x))))
++                               t))
++                            (sixth inl)))
++              :initial-value (info-type i))))
++
++(defun merge-fm-propagator (x fms inl)
++  (let* ((tr (mapcar (lambda (x &aux (v (car (last x))))
++                     (when (and (consp v) (eq (car v) 'var))
++                       (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME
++                   (fifth x))))
++    (mapc (lambda (y) (?update-fm-propagator x y tr (caddr y)))
++        (sixth inl))))
++
++
++(defun apply-inl (cl fms &aux (inl (when *apply-inl-hash* (inls-match cl fms))))
+   (when inl
+     (let* ((c1fms (mapcar (lambda (x) (cdr (nth x fms))) (second inl))))
+       (unless (member-if-not (lambda (x)
+@@ -706,35 +751,56 @@
+                                (var (eq (var-kind (caaddr x)) 'lexical))
+                                ((lit location) t)))
+                            c1fms)
+-      (cond ((zerop (length (car (last inl))))
+-             (let* ((x (car c1fms))(h (pop x))
+-                    (i (copy-info (pop x))))
+-               (setf (info-type i) (type-and (cdr (fifth inl)) (info-type i)))
+-               (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply)
+-                              "Applying var inl-hash ~s" (car cl))
+-               (list* h i x)))
+-            ((let ((x (c1lit (list (car (fifth inl)) (prepend-comment (cons 'applied cl) (car (last inl)))) (mapcar 'list  (fourth inl) c1fms))))
+-               (setf (info-type (cadr x)) (type-and (cdr (fifth inl)) (info-type (cadr x))))
+-               (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply)
+-                              "Applying inl-hash ~s: ~s: ~s" (car cl) (fourth x))
+-               x)))))))
++      (let* ((z (zerop (length (car (last inl)))))
++             (x (if z
++                    (list* (caar c1fms) (copy-info (cadar c1fms)) (cddar c1fms))
++                    (c1lit (list (car (fifth inl)) (prepend-comment (cons 'applied cl) (car (last inl))))
++                           (mapcar 'list  (fourth inl) c1fms)))))
++        (unless z (merge-fm-propagator x fms inl))
++        (update-info-type-from-inl (cadr x) inl fms)
++        (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply)
++                       "Applying inl-hash ~s: ~s" (car cl) (unless z (fourth x)))
++        x)))))
++
++
++(defun compress-inl (s &aux (i (car (gethash s *inl-hash*))))
++  (when (> (length i) 1)
++    (let ((l (length i))
++        (x (reduce (lambda (y x)
++                     (list
++                      (mapl (lambda (z w) (setf (car z) (type-or1 (car z) (car w))))
++                            (car y) (car x))
++                      (max (cadr y) (third x))))
++                   (cdr i) :initial-value (list (copy-list (caar i)) (third (car i)))))
++        (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) (make-list (length (caar i))))))
++      (compile nil `(lambda ,syms
++                    (declare (optimize (safety ,(cadr x)))
++                             ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) (car x) syms))
++                    (,s ,@syms)))
++      (when (< (length (car (gethash s *inl-hash*))) l)
++      (format t "compress-inl ~s: ~s -> ~s~%" s l (length (car (gethash s *inl-hash*))))))))
+-(defun dump-inl-hash (f)
++(defun dump-inl-hash (f &optional compress &aux (si::*print-package* t))
++  (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*))
+   (with-open-file (s f :direction :output)
+     (prin1 '(in-package :compiler) s)
+     (terpri s)
+     (maphash (lambda (x y)
+              (prin1
+-              `(setf (gethash ',x *inl-hash*)
+-                     (list
+-                      (list
+-                       ,@(mapcar (lambda (z)
+-                                   `(list (mapcar 'uniq-tp ',(mapcar 'export-type (pop z)))
+-                                          ',(pop z) ',(pop z) ',(pop z)
+-                                          (cons ',(caar z) (uniq-tp ',(cdar z)))
+-                                          ,(cadr z)))
+-                                 (car y)))))
+-                    s)
++              `(merge-inls
++                ',x
++                (list
++                 ,@(mapcar (lambda (z)
++                             `(list (mapcar 'uniq-tp ',(mapcar 'export-type (pop z)))
++                                    ',(pop z) ',(pop z) ',(pop z)
++                                    (cons ',(caar z) (uniq-tp ',(cdar z)))
++                                    (list ,@(mapcan
++                                             (lambda (x)
++                                               `((list ',(pop x) ',(pop x) ',(mapcar 'export-type (car x)))))
++                                             (cadr z)))
++                                    ,(caddr z)))
++                           (car y))))
++              s)
+              (terpri s))
+            *inl-hash*))
+   nil)
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp
+@@ -355,7 +355,7 @@
+     (coerce-loc *value-to-go* type)))
+     
+-(defun lit-loc (key inl args bind safety oargs stores &aux (tp (get key 'cmp-lisp-type)))
++(defun lit-loc (key inl args bind safety oargs syms stores &aux (tp (get key 'cmp-lisp-type)))
+   (declare (ignore bind safety oargs stores))
+   (let ((sig (list (mapcar (lambda (x) (info-type (cadr x))) args) tp))) 
+     (get-inline-loc (list (car sig) (cadr sig) (flags rfa) inl) args)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptag.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptag.lsp
+@@ -130,7 +130,7 @@
+                        "Initializing ~s at label ~s:~%   type from ~s to ~s,~%   store from ~s to ~s"
+                        (car x) (tag-name z) (var-type (car x)) (cadr x)
+                        (var-store (car x)) (if (eq (var-store (car x)) (caddr x)) (caddr x) +opaque+))
+-        (do-setq-tp (car x) 'mch-set (cadr x));FIXME too prolix
++        (do-setq-tp (car x) '(mch-set) (cadr x));FIXME too prolix
+         (push-vbinds (car x) (caddr x)))
+       l))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -865,14 +865,14 @@
+                                  (incf i lff)(copy-list ff));FIXME?
+                               ((incf i)(list x))))
+                       nargs))
+-       (form (list 'lit info key inl nargs nil lev oargs (make-vs info))))
++       (form (list 'lit info key inl nargs nil lev oargs nil (make-vs info))))
+     (when (find #\= inl)
+       (c1side-effects nil)
+       (setf (info-flags info) (logior (iflags side-effects) (info-flags info))))
+     (setf (sixth form) (new-bind form))
+     form))
+-(defun c2lit (key inl args bind safety &rest r &aux (oargs (pop r)) (stores (car r)) (tp (get key 'cmp-lisp-type :opaque)))
++(defun c2lit (key inl args bind safety &rest r &aux (oargs (pop r)) (syms (pop r)) (stores (car r)) (tp (get key 'cmp-lisp-type :opaque)))
+   (declare (dynamic-extent r))
+   (let* ((*inline-blocks* 0)
+        (*restore-avma*  *restore-avma*)
+@@ -881,7 +881,7 @@
+        (*compiler-new-safety* *compiler-new-safety*)
+        (*compiler-push-events* *compiler-push-events*))
+     (local-compile-decls `((safety ,safety)))
+-    (unwind-exit (lit-loc key inl args bind safety oargs stores) nil
++    (unwind-exit (lit-loc key inl args bind safety oargs syms stores) nil
+                (cons 'values (if (equal tp #t(returns-exactly)) 0 1)))
+     (close-inline-blocks)))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp
+@@ -731,7 +731,7 @@
+         (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'bump-cons-tp-if)
+                        "Bumping var ~s cons type ~s -> ~s, tp ~s"
+                        (var-name v) (cmp-unnorm-tp (var-type v)) (cmp-unnorm-tp (tp-or (var-type v) tp)) (cmp-unnorm-tp tp))
+-        (do-setq-tp v 'bump-cons-tp-if (tp-or (var-type v) tp))))
++        (do-setq-tp v '(bump-cons-tp-if) (tp-or (var-type v) tp))))
+       (let ((s (var-store v)))
+       (when (listp s);FIXME
+         (dolist (b s)
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2ore5"
++"Version_2_7_2pre6"
+--- gcl27-2.7.1.orig/info/c-interface.texi
++++ gcl27-2.7.1/info/c-interface.texi
+@@ -50,7 +50,7 @@ Unsigned versions available are:
+ Complex float and complex double types can be access via:
+-    :fcomplex :dcomples
++    :fcomplex :dcomplex
+ Pointers to types available are
+--- gcl27-2.7.1.orig/o/assignment.c
++++ gcl27-2.7.1/o/assignment.c
+@@ -184,7 +184,7 @@ DEFUN("FSET",object,fSfset,SI,2,2,NONE,O
+     sym->s.s_gfdef = function;
+     sym->s.s_mflag = TRUE;
+   } else {
+-    sym->s.s_gfdef = function;
++    sym->s.s_gfdef = function; /*FIXME*/
+     sym->s.s_mflag = FALSE;
+   }
+   
+--- gcl27-2.7.1.orig/o/num_arith.c
++++ gcl27-2.7.1/o/num_arith.c
+@@ -1001,25 +1001,25 @@ number_divide(object x, object y)
+       case t_complex:
+       COMPLEX:
++
++        x = number_to_complex(x);
++        y = number_to_complex(y);
++
+       {
+-              object z1, z2, z3;
+-              x = number_to_complex(x);
+-              y = number_to_complex(y);
+-              z1 = number_times(y->cmp.cmp_real, y->cmp.cmp_real);
+-              z2 = number_times(y->cmp.cmp_imag, y->cmp.cmp_imag);
+-              z3 = number_plus(z1, z2);
+-              /* if (number_zerop(z3 = number_plus(z1, z2))) DIVISION_BY_ZERO(sLD,list(2,x,y)); */
+-              z1 = number_times(x->cmp.cmp_real, y->cmp.cmp_real);
+-              z2 = number_times(x->cmp.cmp_imag, y->cmp.cmp_imag);
+-              z1 = number_plus(z1, z2);
+-              z = number_times(x->cmp.cmp_imag, y->cmp.cmp_real);
+-              z2 = number_times(x->cmp.cmp_real, y->cmp.cmp_imag);
+-              z2 = number_minus(z, z2);
+-              z1 = number_divide(z1, z3);
+-              z2 = number_divide(z2, z3);
+-              z = make_complex(z1, z2);
+-              return(z);
++        object yl=y->cmp.cmp_real,ys=y->cmp.cmp_imag,xl=x->cmp.cmp_real,xs=x->cmp.cmp_imag,r,dn,w;
++        int s;
++
++        if ((s=(number_compare(number_abs(y->cmp.cmp_real),number_abs(y->cmp.cmp_imag))<0))) {
++          w=ys;ys=yl;yl=w;w=xs;xs=xl;xl=w;
++        }
++
++        r=number_divide(ys,yl);
++        dn=number_plus(yl,number_times(r,ys));
++        w=number_times(xl,r);
++
++        return make_complex(number_divide(number_plus(xl,number_times(xs,r)),dn),
++                            number_divide(s ? number_minus(w,xs) : number_minus(xs,w),dn));
+       }
+       default:
+--- gcl27-2.7.1.orig/xgcl-2/gcl_editors.lsp
++++ gcl27-2.7.1/xgcl-2/gcl_editors.lsp
+@@ -131,7 +131,7 @@
+     (draw-line-xy w (offsetx + 12) (offsety + 35)
+                   (offsetx + 12)
+                   (offsety + 48 + hdel * ((val - nmin) / ndel)) 7)
+-    (editors-update-in-box val w offsetx offsety 40 20))))
++    (editors-update-in-box val w offsetx offsety 40 20)))
+ ; 20 Nov 91; 03 Dec 91; 15 Oct 93; 02 Dec 93; 08 Jan 04
diff --git a/debian/patches/Version_2_7_2pre7 b/debian/patches/Version_2_7_2pre7
new file mode 100644 (file)
index 0000000..1cf50a2
--- /dev/null
@@ -0,0 +1,156 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ gcl27 (2.7.1-8) unstable; urgency=medium
+ .
+   * Bug fix: "FTBFS: /tmp/gazonk_6005_0.c:21:63: error: implicit
+     declaration of function &#39;__builtin_c23_va_start&#39;; did you mean
+     &#39;__builtin_ms_va_start&#39;? [-Wimplicit-function-declaration]",
+     thanks to Santiago Vila (Closes: #1114119).
+   * Version_2_7_2pre7
+Author: Camm Maguire <camm@debian.org>
+Bug-Debian: https://bugs.debian.org/1114119
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+Last-Update: 2025-09-21
+
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -7000,6 +7000,61 @@ fi
++add_arg_to_cppflags() {
++
++    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5
++printf %s "checking for CPPFLAG $1... " >&6; }
++    CPPFLAGS_ORI=$CPPFLAGS
++    CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`"
++    if test "$cross_compiling" = yes
++then :
++  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf "%s\n" "no" >&6; }
++else case e in #(
++  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++int
++main (void)
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_run "$LINENO"
++then :
++  CPPFLAGS="$CPPFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++printf "%s\n" "yes" >&6; };return 0
++else case e in #(
++  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf "%s\n" "no" >&6; } ;;
++esac
++fi
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
++  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
++esac
++fi
++
++    CPPFLAGS=$CPPFLAGS_ORI
++    return 1
++
++}
++
++assert_arg_to_cppflags() {
++    if ! add_arg_to_cppflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5
++printf "%s\n" "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi
++    return 0
++}
++
++add_args_to_cppflags() {
++
++    while test "$#" -ge 1 ; do
++      add_arg_to_cppflags $1
++      shift
++    done
++}
++
+ add_arg_to_cflags() {
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5
+@@ -7127,6 +7182,8 @@ printf "%s\n" "removing $1 from LDFLAGS"
+ }
++add_args_to_cppflags -std=gnu17
++
+ add_args_to_cflags  -fsigned-char -pipe -fcommon \
+                     -fno-builtin-malloc -fno-builtin-free \
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -170,6 +170,34 @@ fi
+ AC_SUBST(GCL_CC)
+ AC_SUBST(CPP)
++add_arg_to_cppflags() {
++
++    AC_MSG_CHECKING([for CPPFLAG $1])
++    CPPFLAGS_ORI=$CPPFLAGS
++    CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`"
++    AC_RUN_IFELSE(
++      [AC_LANG_PROGRAM([[]],[[]])],
++      [CPPFLAGS="$CPPFLAGS_ORI $1";AC_MSG_RESULT([yes]);return 0],
++      [AC_MSG_RESULT([no])],
++      [AC_MSG_RESULT([no])])
++    CPPFLAGS=$CPPFLAGS_ORI
++    return 1
++
++}
++
++assert_arg_to_cppflags() {
++    if ! add_arg_to_cppflags $1 ; then AC_MSG_RESULT([cannot add $1 to CPPFLAGS]); exit 1 ; fi
++    return 0
++}
++
++add_args_to_cppflags() {
++
++    while test "$#" -ge 1 ; do
++      add_arg_to_cppflags $1
++      shift
++    done
++}
++
+ add_arg_to_cflags() {
+     AC_MSG_CHECKING([for CFLAG $1])
+@@ -242,6 +270,8 @@ remove_arg_from_ldflags() {
+ }
++add_args_to_cppflags -std=gnu17
++
+ add_args_to_cflags  -fsigned-char -pipe -fcommon \
+                     -fno-builtin-malloc -fno-builtin-free \
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2pre6"
++"Version_2_7_2pre7"
diff --git a/debian/patches/Version_2_7_2pre8 b/debian/patches/Version_2_7_2pre8
new file mode 100644 (file)
index 0000000..b7d356d
--- /dev/null
@@ -0,0 +1,17403 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ gcl27 (2.7.1-9) unstable; urgency=medium
+ .
+   * Version_2_7_2pre8
+Author: Camm Maguire <camm@debian.org>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+Last-Update: 2026-02-19
+
+--- gcl27-2.7.1.orig/INSTALL
++++ gcl27-2.7.1/INSTALL
+@@ -13,7 +13,10 @@ Basic Installation
+ should configure, build, and install this package.  The first line,
+ which bootstraps, is intended for developers; when building from
+-distribution tarballs it does nothing and can be skipped.
++distribution tarballs it does nothing and can be skipped.  A package
++might name the bootstrapping script differently; if the name is
++‘autogen.sh’, for example, the first line should say ‘./autogen.sh’
++instead of ‘./bootstrap’.
+    The following more-detailed instructions are generic; see the
+ ‘README’ file for instructions specific to this package.  Some packages
+@@ -25,23 +28,22 @@ found in the GNU Coding Standards.
+    Many packages have scripts meant for developers instead of ordinary
+ builders, as they may use developer tools that are less commonly
+ installed, or they may access the network, which has privacy
+-implications.  If the ‘bootstrap’ shell script exists, it attempts to
+-build the ‘configure’ shell script and related files, possibly using
+-developer tools or the network.  Because the output of ‘bootstrap’ is
+-system-independent, it is normally run by a package developer so that
+-its output can be put into the distribution tarball and ordinary
+-builders and users need not run ‘bootstrap’.  Some packages have
+-commands like ‘./autopull.sh’ and ‘./autogen.sh’ that you can run
+-instead of ‘./bootstrap’, for more fine-grained control over
+-bootstrapping.
+-
+-   The ‘configure’ shell script attempts to guess correct values for
+-various system-dependent variables used during compilation.  It uses
+-those values to create a ‘Makefile’ in each directory of the package.
+-It may also create one or more ‘.h’ files containing system-dependent
+-definitions.  Finally, it creates a shell script ‘config.status’ that
+-you can run in the future to recreate the current configuration, and a
+-file ‘config.log’ containing output useful for debugging ‘configure’.
++implications.  These scripts attempt to bootstrap by building the
++‘configure’ script and related files, possibly using developer tools or
++the network.  Because the output of bootstrapping is system-independent,
++it is normally run by a package developer so that its output can be put
++into the distribution tarball and ordinary builders and users need not
++bootstrap.  Some packages have commands like ‘./autopull.sh’ and
++‘./autogen.sh’ that you can run instead of ‘./bootstrap’, for more
++fine-grained control over bootstrapping.
++
++   The ‘configure’ script attempts to guess correct values for various
++system-dependent variables used during compilation.  It uses those
++values to create a ‘Makefile’ in each directory of the package.  It may
++also create one or more ‘.h’ files containing system-dependent
++definitions.  Finally, it creates a script ‘config.status’ that you can
++run in the future to recreate the current configuration, and a file
++‘config.log’ containing output useful for debugging ‘configure’.
+    It can also use an optional file (typically called ‘config.cache’ and
+ enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the
+@@ -64,9 +66,10 @@ editing ‘configure’ directly.
+   1. ‘cd’ to the directory containing the package’s source code.
+   2. If this is a developer checkout and file ‘configure’ does not yet
+-     exist, type ‘./bootstrap’ to create it.  You may need special
+-     developer tools and network access to bootstrap, and the network
+-     access may have privacy implications.
++     exist, run the bootstrapping script (typically ‘./bootstrap’ or
++     ‘./autogen.sh’) to bootstrap and create the file.  You may need
++     special developer tools and network access to bootstrap, and the
++     network access may have privacy implications.
+   3. Type ‘./configure’ to configure the package for your system.  This
+      might take a while.  While running, ‘configure’ prints messages
+@@ -101,6 +104,18 @@ editing ‘configure’ directly.
+   9. If the package follows the GNU Coding Standards, you can type ‘make
+      uninstall’ to remove the installed files.
++Installation Prerequisites
++==========================
++
++   Installation requires a POSIX-like environment with a shell and at
++least the following standard utilities:
++
++     awk cat cp diff echo expr false ls mkdir mv printf pwd rm rmdir sed
++     sort test tr
++
++This package’s installation may need other standard utilities such as
++‘grep’, ‘make’, ‘sleep’ and ‘touch’, along with compilers like ‘gcc’.
++
+ Compilers and Options
+ =====================
+@@ -356,7 +371,7 @@ more details.
+ Copyright notice
+ ================
+-   Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2024 Free Software
++   Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2025 Free Software
+ Foundation, Inc.
+    Copying and distribution of this file, with or without modification,
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -129,7 +129,7 @@ BASE_H= h/compbas2.h h/compbas.h h/compp
+       h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \
+       h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h h/pool.h \
+       h/prelink.h h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
+-        h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h h/apply_n.h \
++        h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \
+       gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h
+ CMPI_H=       h/compdefs.h h/cmpincl1.h h/mgmp.h h/compprotos.h h/compbas2.h h/cmponly_last.h
+ ARCHT_H=h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
+@@ -161,7 +161,7 @@ C_SRC=o/typespec.c o/alloc.c o/gbc.c o/b
+ D_SRC=o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\
+       o/read.d o/sequence.d o/string.d o/symbol.d
+ BUILT_C=o/character.c o/file.c o/gcl_readline.c o/hash.c o/list.c o/package.c o/pathname.c o/print.c\
+-        o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c
++        o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c o/qfv.c
+ INI_FILES=$(patsubst %.c,%.ini,$(C_SRC)) $(patsubst %.d,%.ini,$(D_SRC))
+ if AMM_GPROF
+@@ -352,6 +352,7 @@ unixport/ansi_gcl: clcs/package.lisp clc
+ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o : lsp/%.lsp
+ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp
+ gcl0/%.o: | unixport/gcl0
++      rm -f $(@D)/$*.done
+       $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+       [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+               ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
+@@ -359,6 +360,7 @@ gcl0/%.o: | unixport/gcl0
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+ $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp
+ gcl1/%.o: | unixport/gcl1
++      rm -f $(@D)/$*.done
+       $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" \
+          -eval "(setq compiler::*dump-inl-hash* t)" \
+          -compile $< -o $@
+@@ -456,6 +458,9 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
++o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
++
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+       @cat $^ >new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -1,7 +1,7 @@
+-# Makefile.in generated by automake 1.17 from Makefile.am.
++# Makefile.in generated by automake 1.18.1 from Makefile.am.
+ # @configure_input@
+-# Copyright (C) 1994-2024 Free Software Foundation, Inc.
++# Copyright (C) 1994-2025 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -197,13 +197,12 @@ am__lib_libbase_gcl_a_SOURCES_DIST = o/t
+       h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
+       h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
+       o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
+-      h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \
+-      h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \
+-      h/cmponly_last.h h/elf32_armhf_reloc.h \
+-      h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \
+-      h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \
+-      h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \
+-      h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
++      h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
++      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
++      h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
++      h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
++      h/elf32_i386_reloc.h h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
+       h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \
+       h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \
+       h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \
+@@ -258,7 +257,7 @@ am__objects_4 = o/character.$(OBJEXT) o/
+       o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \
+       o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \
+       o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \
+-      o/symbol.$(OBJEXT) o/new_init.$(OBJEXT)
++      o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) o/qfv.$(OBJEXT)
+ nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4)
+ lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \
+       $(nodist_lib_libbase_gcl_a_OBJECTS)
+@@ -287,13 +286,12 @@ am__lib_libbase_gcl_gprof_a_SOURCES_DIST
+       h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \
+       h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \
+       o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \
+-      h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \
+-      h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \
+-      h/cmponly_last.h h/elf32_armhf_reloc.h \
+-      h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \
+-      h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \
+-      h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \
+-      h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
++      h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \
++      h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \
++      h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \
++      h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \
++      h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \
++      h/elf32_i386_reloc.h h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \
+       h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \
+       h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \
+       h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \
+@@ -399,7 +397,8 @@ am__objects_8 = o/lib_libbase_gcl_gprof_
+       o/lib_libbase_gcl_gprof_a-sequence.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \
+       o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \
+-      o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT)
++      o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) \
++      o/lib_libbase_gcl_gprof_a-qfv.$(OBJEXT)
+ am__objects_9 = $(am__objects_8)
+ nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9)
+ lib_libbase_gcl_gprof_a_OBJECTS =  \
+@@ -572,6 +571,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po \
++      o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po \
+       o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po \
+@@ -606,7 +606,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.
+       o/$(DEPDIR)/number.Po o/$(DEPDIR)/package.Po \
+       o/$(DEPDIR)/pathname.Po o/$(DEPDIR)/predicate.Po \
+       o/$(DEPDIR)/prelink.Po o/$(DEPDIR)/print.Po \
+-      o/$(DEPDIR)/prog.Po o/$(DEPDIR)/read.Po \
++      o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po o/$(DEPDIR)/read.Po \
+       o/$(DEPDIR)/reference.Po o/$(DEPDIR)/regexpr.Po \
+       o/$(DEPDIR)/run_process.Po o/$(DEPDIR)/sequence.Po \
+       o/$(DEPDIR)/sfasl.Po o/$(DEPDIR)/sockets.Po \
+@@ -1037,7 +1037,7 @@ BASE_H = h/compbas2.h h/compbas.h h/comp
+       h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \
+       h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h h/pool.h \
+       h/prelink.h h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \
+-        h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h h/apply_n.h \
++        h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \
+       gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h
+ CMPI_H = h/compdefs.h h/cmpincl1.h h/mgmp.h h/compprotos.h h/compbas2.h h/cmponly_last.h
+@@ -1071,7 +1071,7 @@ D_SRC = o/character.d o/file.d o/gcl_rea
+       o/read.d o/sequence.d o/string.d o/symbol.d
+ BUILT_C = o/character.c o/file.c o/gcl_readline.c o/hash.c o/list.c o/package.c o/pathname.c o/print.c\
+-        o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c
++        o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c o/qfv.c
+ INI_FILES = $(patsubst %.c,%.ini,$(C_SRC)) $(patsubst \
+       %.d,%.ini,$(D_SRC)) $(am__append_10)
+@@ -1418,6 +1418,7 @@ o/sequence.$(OBJEXT): o/$(am__dirstamp)
+ o/string.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/symbol.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ o/new_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
++o/qfv.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp)
+ lib/$(am__dirstamp):
+       @$(MKDIR_P) lib
+       @: >>lib/$(am__dirstamp)
+@@ -1588,6 +1589,8 @@ o/lib_libbase_gcl_gprof_a-symbol.$(OBJEX
+       o/$(DEPDIR)/$(am__dirstamp)
+ o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT): o/$(am__dirstamp) \
+       o/$(DEPDIR)/$(am__dirstamp)
++o/lib_libbase_gcl_gprof_a-qfv.$(OBJEXT): o/$(am__dirstamp) \
++      o/$(DEPDIR)/$(am__dirstamp)
+ lib/libbase_gcl_gprof.a: $(lib_libbase_gcl_gprof_a_OBJECTS) $(lib_libbase_gcl_gprof_a_DEPENDENCIES) $(EXTRA_lib_libbase_gcl_gprof_a_DEPENDENCIES) lib/$(am__dirstamp)
+       $(AM_V_at)-rm -f lib/libbase_gcl_gprof.a
+@@ -1850,6 +1853,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po@am__quote@ # am--include-marker
+@@ -1897,6 +1901,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/prelink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/print.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/prog.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/qfv.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/read.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/reference.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/regexpr.Po@am__quote@ # am--include-marker
+@@ -3086,6 +3091,20 @@ o/lib_libbase_gcl_gprof_a-new_init.obj:
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-new_init.obj `if test -f 'o/new_init.c'; then $(CYGPATH_W) 'o/new_init.c'; else $(CYGPATH_W) '$(srcdir)/o/new_init.c'; fi`
++o/lib_libbase_gcl_gprof_a-qfv.o: o/qfv.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-qfv.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo -c -o o/lib_libbase_gcl_gprof_a-qfv.o `test -f 'o/qfv.c' || echo '$(srcdir)/'`o/qfv.c
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/qfv.c' object='o/lib_libbase_gcl_gprof_a-qfv.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-qfv.o `test -f 'o/qfv.c' || echo '$(srcdir)/'`o/qfv.c
++
++o/lib_libbase_gcl_gprof_a-qfv.obj: o/qfv.c
++@am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-qfv.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo -c -o o/lib_libbase_gcl_gprof_a-qfv.obj `if test -f 'o/qfv.c'; then $(CYGPATH_W) 'o/qfv.c'; else $(CYGPATH_W) '$(srcdir)/o/qfv.c'; fi`
++@am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     $(AM_V_CC)source='o/qfv.c' object='o/lib_libbase_gcl_gprof_a-qfv.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-qfv.obj `if test -f 'o/qfv.c'; then $(CYGPATH_W) 'o/qfv.c'; else $(CYGPATH_W) '$(srcdir)/o/qfv.c'; fi`
++
+ o/lib_libgprof_a-gprof.o: o/gprof.c
+ @am__fastdepCC_TRUE@  $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_libgprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libgprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libgprof_a-gprof.Tpo -c -o o/lib_libgprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c
+ @am__fastdepCC_TRUE@  $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libgprof_a-gprof.Tpo o/$(DEPDIR)/lib_libgprof_a-gprof.Po
+@@ -3849,6 +3868,7 @@ cscopelist-am: $(am__tagged_files)
+ distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
++
+ distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+@@ -3902,6 +3922,10 @@ dist-bzip2: distdir
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__post_remove_distdir)
++dist-bzip3: distdir
++      tardir=$(distdir) && $(am__tar) | bzip3 -c >$(distdir).tar.bz3
++      $(am__post_remove_distdir)
++
+ dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       $(am__post_remove_distdir)
+@@ -3946,6 +3970,8 @@ distcheck: dist
+         eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+       *.tar.bz2*) \
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
++      *.tar.bz3*) \
++        bzip3 -dc $(distdir).tar.bz3 | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+       *.tar.xz*) \
+@@ -4186,6 +4212,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po
+@@ -4233,6 +4260,7 @@ distclean: distclean-am
+       -rm -f o/$(DEPDIR)/prelink.Po
+       -rm -f o/$(DEPDIR)/print.Po
+       -rm -f o/$(DEPDIR)/prog.Po
++      -rm -f o/$(DEPDIR)/qfv.Po
+       -rm -f o/$(DEPDIR)/read.Po
+       -rm -f o/$(DEPDIR)/reference.Po
+       -rm -f o/$(DEPDIR)/regexpr.Po
+@@ -4508,6 +4536,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po
++      -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po
+       -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po
+@@ -4555,6 +4584,7 @@ maintainer-clean: maintainer-clean-am
+       -rm -f o/$(DEPDIR)/prelink.Po
+       -rm -f o/$(DEPDIR)/print.Po
+       -rm -f o/$(DEPDIR)/prog.Po
++      -rm -f o/$(DEPDIR)/qfv.Po
+       -rm -f o/$(DEPDIR)/read.Po
+       -rm -f o/$(DEPDIR)/reference.Po
+       -rm -f o/$(DEPDIR)/regexpr.Po
+@@ -4625,9 +4655,9 @@ uninstall-man: uninstall-man1
+       clean-local clean-my_gcltkPROGRAMS clean-my_unixportLIBRARIES \
+       clean-my_unixportPROGRAMS clean-noinstLIBRARIES \
+       clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am dist \
+-      dist-all dist-bzip2 dist-gzip dist-info dist-lzip dist-shar \
+-      dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \
+-      distclean-compile distclean-generic distclean-hdr \
++      dist-all dist-bzip2 dist-bzip3 dist-gzip dist-info dist-lzip \
++      dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \
++      distclean distclean-compile distclean-generic distclean-hdr \
+       distclean-local distclean-tags distcleancheck distdir \
+       distuninstallcheck dvi dvi-am html html-am info info-am \
+       install install-am install-binSCRIPTS install-data \
+@@ -4778,6 +4808,7 @@ unixport/ansi_gcl: clcs/package.lisp clc
+ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o : lsp/%.lsp
+ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp
+ gcl0/%.o: | unixport/gcl0
++      rm -f $(@D)/$*.done
+       $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@
+       [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \
+               ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link
+@@ -4785,6 +4816,7 @@ gcl0/%.o: | unixport/gcl0
+ $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp
+ $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp
+ gcl1/%.o: | unixport/gcl1
++      rm -f $(@D)/$*.done
+       $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" \
+          -eval "(setq compiler::*dump-inl-hash* t)" \
+          -compile $< -o $@
+@@ -4874,6 +4906,9 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
++o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
++      $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
++
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+       @cat $^ >new_$(@F)
+       @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@
+--- gcl27-2.7.1.orig/aclocal.m4
++++ gcl27-2.7.1/aclocal.m4
+@@ -1,6 +1,6 @@
+-# generated automatically by aclocal 1.17 -*- Autoconf -*-
++# generated automatically by aclocal 1.18.1 -*- Autoconf -*-
+-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
++# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -20,7 +20,7 @@ You have another version of autoconf.  I
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
++# Copyright (C) 2002-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -32,10 +32,10 @@ To do so, use the procedure documented b
+ # generated from the m4 files accompanying Automake X.Y.
+ # (This private macro should not be called outside this file.)
+ AC_DEFUN([AM_AUTOMAKE_VERSION],
+-[am__api_version='1.17'
++[am__api_version='1.18'
+ dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+ dnl require some minimum version.  Point them to the right macro.
+-m4_if([$1], [1.17], [],
++m4_if([$1], [1.18.1], [],
+       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+ ])
+@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
+ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+ # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+-[AM_AUTOMAKE_VERSION([1.17])dnl
++[AM_AUTOMAKE_VERSION([1.18.1])dnl
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+ # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
+ # AM_CONDITIONAL                                            -*- Autoconf -*-
+-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
++# Copyright (C) 1997-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
+ Usually this means the macro was only invoked conditionally.]])
+ fi])])
+-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
++# Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
+ # Generate code to set up dependency tracking.              -*- Autoconf -*-
+-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
++# Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -400,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS]
+ # Do all the work for Automake.                             -*- Autoconf -*-
+-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
++# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -500,8 +500,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+-            [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+-                           [_AM_PROG_TAR([v7])])])
++  [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
++    [_AM_IF_OPTION([tar-v7], [_AM_PROG_TAR([v7])],
++      [_AM_PROG_TAR([ustar])])])])
+ _AM_IF_OPTION([no-dependencies],,
+ [AC_PROVIDE_IFELSE([AC_PROG_CC],
+                 [_AM_DEPENDENCIES([CC])],
+@@ -577,7 +578,7 @@ for _am_header in $config_headers :; do
+ done
+ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -598,7 +599,7 @@ if test x"${install_sh+set}" != xset; th
+ fi
+ AC_SUBST([install_sh])])
+-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
++# Copyright (C) 2003-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -617,7 +618,7 @@ fi
+ rmdir .tst 2>/dev/null
+ AC_SUBST([am__leading_dot])])
+-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
++# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -666,7 +667,7 @@ AC_SUBST([lispdir])
+ # Check to see how 'make' treats includes.                -*- Autoconf -*-
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -709,7 +710,7 @@ AC_SUBST([am__quote])])
+ # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
++# Copyright (C) 1997-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -743,7 +744,7 @@ fi
+ # Helper functions for option handling.                     -*- Autoconf -*-
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -772,7 +773,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
+ AC_DEFUN([_AM_IF_OPTION],
+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
++# Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -804,7 +805,10 @@ AC_CACHE_CHECK(
+       break
+     fi
+   done
+-  rm -f core conftest*
++  # aligned with autoconf, so not including core; see bug#72225.
++  rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \
++    conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \
++    conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM
+   unset am_i])
+ if test "$am_cv_prog_cc_c_o" != yes; then
+    # Losing compiler, so override with the script.
+@@ -819,7 +823,7 @@ AC_LANG_POP([C])])
+ # For backward compatibility.
+ AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
++# Copyright (C) 2022-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -835,7 +839,7 @@ AS_IF([(rm -f && rm -fr && rm -rf) 2>/de
+ AC_SUBST(am__rm_f_notfound)
+ ])
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -854,7 +858,7 @@ AC_DEFUN([AM_RUN_LOG],
+ # Check to make sure that the build environment is sane.    -*- Autoconf -*-
+-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
++# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -1023,10 +1027,12 @@ am_lf='
+ '
+ case `pwd` in
+   *[[\\\"\#\$\&\'\`$am_lf]]*)
++    AC_MSG_RESULT([no])
+     AC_MSG_ERROR([unsafe absolute working directory name]);;
+ esac
+ case $srcdir in
+   *[[\\\"\#\$\&\'\`$am_lf\ \  ]]*)
++    AC_MSG_RESULT([no])
+     AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+ esac
+@@ -1079,7 +1085,7 @@ AC_CONFIG_COMMANDS_PRE(
+ rm -f conftest.file
+ ])
+-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
++# Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -1148,9 +1154,13 @@ fi
+ # empty being verbose).
+ AC_DEFUN([AM_SILENT_RULES],
+ [AC_REQUIRE([_AM_SILENT_RULES])
+-AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])])
++AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])m4_newline
++dnl We intentionally force a newline after the assignment, since a) nothing
++dnl good can come of more text following, and b) that was the behavior
++dnl before 1.17. See https://bugs.gnu.org/72267.
++])
+-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
++# Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -1178,7 +1188,7 @@ fi
+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
+-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
++# Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -1197,7 +1207,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_
+ # Check how to create a tarball.                            -*- Autoconf -*-
+-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
++# Copyright (C) 2004-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -1332,7 +1342,7 @@ AC_SUBST([am__tar])
+ AC_SUBST([am__untar])
+ ]) # _AM_PROG_TAR
+-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
++# Copyright (C) 2022-2025 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+--- gcl27-2.7.1.orig/ansi-tests/stable-sort.lsp
++++ gcl27-2.7.1/ansi-tests/stable-sort.lsp
+@@ -174,6 +174,9 @@
+      i x y z))
+   (7 3 2 1) 3 1 2 3)
++(deftest stable-sort.order.3
++    (stable-sort "A1A2A3A4A5A6a1a2a3a4a5a6" 'char-lessp)
++  "112233445566AAAAAAaaaaaa")
+ ;;; Error cases
+--- /dev/null
++++ gcl27-2.7.1/bin/c23.awk
+@@ -0,0 +1,38 @@
++#!/usr/bin/awk -f
++
++/^ *ufixnum *maxargs_for_awk *=/ {gsub("="," ");gsub(";"," ");maxargs=$NF+0;next}
++
++/^ *awk_generated_vc_apply_n_lines;$/ {
++
++    if (!maxargs) {printf("error: maxargs unset\n");exit(-1);}
++   
++    for (n=1;n<=maxargs;n++) {
++      for (m=n;m;m--) {
++          printf("\n\tcase %d*%d+%d: return ((object(*)(",n,maxargs+1,m);
++            for (i=0;i<m;i++) printf("%sobject",i ? "," : "");
++          printf(",...))f)(");
++            for (i=0;i<n;i++) printf("%sx[%d]",i ? "," : "",i);
++            printf(");");
++      }
++    }
++    printf("\n");
++    
++    next;
++    
++}
++
++/^ *awk_generated_rc_apply_n_lines;$/ {
++    
++    for (n=0;n<=maxargs;n++) {
++      printf("\n\tcase %d: return ((object(*)(",n);
++      for (i=0;i<n;i++) printf("%sobject",i ? "," : "");
++      printf("))f)(");
++      for (i=0;i<n;i++) printf("%sx[%d]",i ? "," : "",i);
++      printf(");");
++    }
++    printf("\n");
++
++    next;
++}
++
++{print}
+--- gcl27-2.7.1.orig/bin/dpp.c
++++ gcl27-2.7.1/bin/dpp.c
+@@ -62,6 +62,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <stdbool.h>
+ #include "gclincl.h"
+ #include "config.h"
+@@ -81,8 +82,6 @@
+ #define       TRUE            1
+ #define       FALSE           0
+-typedef int bool;
+-
+ FILE *in, *out;
+ char filename[BUFSIZ];
+@@ -128,9 +127,8 @@ char *result[MAXRES];
+ int nres;
+ void
+-error(s)
+-char *s;
+-{
++error(char *s) {
++
+       printf("Error in line %d: %s.\n", line, s);
+       exit(0);
+ }
+@@ -165,9 +163,8 @@ nextc()
+ }
+ void
+-unreadc(c)
+-int c;
+-{
++unreadc(int c) {
++
+       if (c == '\n')
+               --line;
+       else if (c == '\t')
+@@ -176,9 +173,8 @@ int c;
+ }
+ void
+-put_tabs(n)
+-int n;
+-{
++put_tabs(int n) {
++
+       int i;
+       for (i = 0;  i < n;  i++)
+@@ -186,9 +182,8 @@ int n;
+ }
+ void
+-pushc(c)
+-int c;
+-{
++pushc(int c) {
++
+       if (poolp >= &pool[POOLSIZE])
+               error("buffer bool overflow");
+       *poolp++ = c;
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp
+@@ -52,6 +52,75 @@
+ (defvar  *use-sfuncall* t)
+ (defvar *super-funcall* nil)
++;; (defun c2funcall (funob args &optional loc)
++
++;;   (unless (listp args)
++;;     (if *compiler-push-events*
++;;    (wt-nl "super_funcall(" loc ");")
++;;       (if *super-funcall*
++;;      (funcall *super-funcall* loc)
++;;    (wt-nl "super_funcall_no_event(" loc ");")))
++;;     (unwind-exit 'fun-val)
++;;     (return-from c2funcall nil))
++
++;;   (unless (eq 'ordinary (car funob)) (baboon))
++
++;;   (let* ((fn (caddr funob))
++;;     (all (cons fn args))
++;;     (*inline-blocks* 0))
++;;     (setq *sup-used* t)
++;;     (unwind-exit 
++;;      (get-inline-loc
++;;       (list (make-list (length all) :initial-element t)
++;;        '* #.(flags ans set svt) 
++;;        (concatenate 'string
++;;        "({object _z,_f=#0;fixnum _v=(fixnum)#v;
++;;         fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1;
++;;         _z=Rset && !(_f)->fun.fun_argd &&
++;;         fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ?
++;;         "
++;;        (if args
++;;            "(_f)->fun.fun_self(#*)"
++;;          "((_f)->fun.fun_maxarg ? (_f)->fun.fun_self(#?) : (_f)->fun.fun_self(#*))")
++;;        " : call_proc_cs2(#?);
++;;            if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup;
++;;            _z;})")) all))
++;;     (close-inline-blocks)))
++
++;; (defun c2funcall (funob args &optional loc)
++
++;;   (unless (listp args)
++;;     (if *compiler-push-events*
++;;    (wt-nl "super_funcall(" loc ");")
++;;       (if *super-funcall*
++;;      (funcall *super-funcall* loc)
++;;    (wt-nl "super_funcall_no_event(" loc ");")))
++;;     (unwind-exit 'fun-val)
++;;     (return-from c2funcall nil))
++
++;;   (unless (eq 'ordinary (car funob)) (baboon))
++
++;;   (let* ((fn (caddr funob))
++;;     (all (cons fn args))
++;;     (*inline-blocks* 0))
++;;     (setq *sup-used* t)
++;;     (unwind-exit 
++;;      (get-inline-loc
++;;       (list (make-list (length all) :initial-element t)
++;;        '* #.(flags ans set svt) 
++;;        (concatenate 'string
++;;        "({object _z,_f=#0;fixnum _v=(fixnum)#v;
++;;         fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1;
++;;         _z=Rset && !(_f)->fun.fun_argd &&
++;;         fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ?
++;;         ({object _b[]={#*};
++;;           quick_call_function_vec(_f,sizeof(_b)/sizeof(*_b),_b);}) :
++;;         call_proc_cs2(#?);
++;;         if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup;
++;;         _z;})")) all))
++;;     (close-inline-blocks)))
++
++
+ (defun c2funcall (funob args &optional loc)
+   (unless (listp args)
+@@ -67,24 +136,35 @@
+   (let* ((fn (caddr funob))
+        (all (cons fn args))
++       (la1 (1- (length all)))
+        (*inline-blocks* 0))
+     (setq *sup-used* t)
+     (unwind-exit 
+      (get-inline-loc
+       (list (make-list (length all) :initial-element t)
+           '* #.(flags ans set svt) 
+-          (concatenate 'string
+-          "({object _z,_f=#0;fixnum _v=(fixnum)#v;
+-        fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1;
+-        _z=Rset && !(_f)->fun.fun_argd &&
+-        fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ?
+-        "
+-          (if args
+-              "(_f)->fun.fun_self(#*)"
+-            "((_f)->fun.fun_maxarg ? (_f)->fun.fun_self(#?) : (_f)->fun.fun_self(#*))")
+-          " : call_proc_cs2(#?);
+-           if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup;
+-           _z;})")) all))
++          (ms
++          "({object _z,_f=fcall.fun=#0;fixnum _v=fcall.valp=(fixnum)#v;char _n=fcall.argd=#n-1;
++        _n=Rset &&
++            !_f->fun.fun_argd &&
++            _n>=_f->fun.fun_minarg &&
++            _n<=(_f->fun.fun_maxarg) ?
++            _f->fun.fun_minarg-_n : -(MAX_ARGS+1);
++        switch (_n) {
++            case 0: _z=_f->fun.fun_minarg==_f->fun.fun_maxarg ?
++                       (" (gcst la1) "_f->fun.fun_self)(#*) :
++                       (" (gcst (max 1 la1) t) "_f->fun.fun_self)(#?);break;
++            "
++          (let ((i 0))
++            (mapcan (lambda (x &aux (j (decf i)))
++                      (declare (ignore x))
++                      (list "case " (write-to-string j) ": _z=(" (gcst (max 1 (+ j la1)) t) "_f->fun.fun_self)(#?);break;
++            "))
++                    (make-list (max 0 la1))))
++          "default: _z=call_proc_cs2(#?);break;
++        }
++        if (!_f->fun.fun_neval && !_f->fun.fun_vv) vs_top=_v ? (object *)_v : sup;
++        _z;})")) all))
+     (close-inline-blocks)))
+@@ -391,6 +471,63 @@
+ ;;make a function which will be called hopefully only once,
+ ;;and will establish the link.
++
++(defun stub-decl (name args d &optional vp
++                &aux (i 0))
++  (concatenate
++   'string
++   "static " d " " name ;" LnkT" num
++   "("
++   (apply 'concatenate 'string
++        (mapcan (lambda (x)
++                  (if (eq x '*)
++                      (list ",...")
++                      (list (if (plusp i) ","  "")
++                            (rep-type x)
++                            (progn (incf i) (if vp (concatenate 'string "x" (write-to-string i)) "")))))
++                (if (eq (car args) '*) (cons t args) args)))
++   ")"))
++
++
++(defun stub (num name args type clp
++           &aux (va (eq '* (car (last args)))) (n (if va 1 0))(i (max n (- (length args) n)));FIXME
++             (d (declaration-type (rep-type (if (link-arg-p type) type t)))))
++  (concatenate
++   'string
++   (stub-decl (concatenate 'string "LnkT" num) args d t)
++   "{
++      int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" (write-to-string i)) ";
++      object *FOO=alloca(nargs*sizeof(*FOO));
++      "
++
++   (let ((j 0))
++     (apply 'concatenate 'string
++          (mapcan (lambda (x &aux (sj (write-to-string (incf j))))
++                    (declare (ignore x))
++                    (list "FOO[" sj "-1]=(object)x" sj ";"))
++                  (make-list i))))
++   (when va
++     (concatenate
++      'string
++      "
++      {
++          va_list ap;
++          va_start(ap,x" (write-to-string i) ");
++          int i;
++          for (i=" (write-to-string i) ";i<nargs;i++) FOO[i]=va_arg(ap,object);
++          va_end(ap);
++      }"))
++
++   "
++      return (" d ")call_proc_new23("
++   (vv-str name) ","
++   (if clp "1" "0") ","
++   (write-to-string (argsizes args type 0)) ","
++   "(void **)(void *)&Lnk" num ","
++   (write-to-string (new-proclaimed-argd args type)) ","
++   "FOO);
++}"))
++
+ (defun wt-function-link (x)
+   (let* ((name (pop x))
+        (num (pop x))
+@@ -400,27 +537,11 @@
+        (args (pop x))
+        (clp (pop x)))
+     (declare (ignore n))
+-    (cond
+-      (t
+-       ;;change later to include above.
+-       ;;(setq type (cdr (assoc type '((t . "object")(:btpr . "bptr")))))
+-       (wt-nl1 "static " (declaration-type (rep-type type)) " LnkT" num)
+-       (let ((d (declaration-type (rep-type (if (link-arg-p type) type t)))));FIXME
+-       (if (or args (not (eq t type)))
+-           (wt "(object first,...){" d "V1;va_list ap;va_start(ap,first);V1=(" d ")"
+-               "call_proc_new(" (vv-str name) "," (if clp "1" "0") ","
+-               (write-to-string (argsizes args type 0));FIXME
+-               ",(void **)(void *)&Lnk" num "," (new-proclaimed-argd args type)
+-               ",first,ap);va_end(ap);return V1;}")
+-         (wt "(){" d "V1=(" d ")call_proc_new_nval(" (vv-str name) "," (if clp "1" "0") ","
+-             (write-to-string (argsizes args type 0));FIXME
+-             ",(void **)(void *)&Lnk" num "," (new-proclaimed-argd args type)
+-             ",0);return V1;}")))))
++    (wt-nl1)
++    (wt (stub num name args type clp))
+     (setq name (function-string name))
+     (if (find #\/ name) (setq name (remove #\/ name)))
+     (wt " /* " name " */")))
+-      
+-
+ ;;For funcalling when the argument is guaranteed to be a compiled-function.
+ ;;For (funcall-c he 3 4), he being a compiled function. (not a symbol)!
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpflet.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpflet.lsp
+@@ -493,7 +493,8 @@
+        (nm (c-function-name "L" (fun-cfun fun) (fun-name fun)))
+        (nm (concatenate 'string "(" (rep-type (coerce-to-one-value (cadr sig))) ")" nm))
+        (clp (when clp (ccb-vs-str (fun-ref-ccb fun))))
+-       (nm (if clp (ms clp "->fun.fun_self") nm))
++       (als (cdr (mapcan (lambda (x) (list "," (if (eq x '*) "..." "object"))) (car sig))))
++       (nm (if clp (ms "((object(*)(" als "))" clp "->fun.fun_self)") nm))
+        (inl (g1 clp nm sig ap clp (if clp -1 (fun-level fun)))))
+     `(,(adj-call-tps-max (car sig)) ,(cadr sig)
+       ,(if mv (flags rfa svt) (flags rfa))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp
+@@ -111,23 +111,25 @@
+ ;;             stream)
+ ;;       (list 'call-global info 'terpri (list stream))))
++(defun gcst (n &optional e)
++  (ms "(object(*)(" (cdr (mapcan (lambda (x) (declare (ignore x)) (list "," "object")) (make-list n))) (when e ",...") "))"))
+ (defun c2apply (funob args)
+   (unless (eq 'ordinary (car funob)) (baboon))
+   (let* ((fn (caddr funob))
+        (all (cons fn args))
++       (la2 (- (length all) 2))
+        (*inline-blocks* 0))
+     (setq *sup-used* t)
+     (unwind-exit
+      (get-inline-loc
+       (list (make-list (length all) :initial-element t)
+           '* #.(flags ans set svt)
+-          (concatenate
+-           'string
++          (ms
+            "({fixnum _v=(fixnum)#v;object _z,_f=(#0),_l=(#1),_ll=_l;
+         object _x4=Cnil,_x3=Cnil,_x2=Cnil,_x1=Cnil,_x0=Cnil;
+-        char _m=(#n-2),_q=_f->fun.fun_minarg>_m ? _f->fun.fun_minarg-_m : 0;
+-        char _n=Rset && !_f->fun.fun_argd ? _q : -1;
++        char _m=(#n-2),_n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1);
++        char _reg=_f->fun.fun_minarg==_f->fun.fun_maxarg;
+         fcall.fun=_f;fcall.valp=_v;fcall.argd=-(#n-1);
+         switch (_n) {
+           case 5: if (_l==Cnil) {_n=-1;break;} _x4=_l->c.c_car;_l=_l->c.c_cdr;
+@@ -135,21 +137,30 @@
+           case 3: if (_l==Cnil) {_n=-1;break;} _x2=_l->c.c_car;_l=_l->c.c_cdr;
+           case 2: if (_l==Cnil) {_n=-1;break;} _x1=_l->c.c_car;_l=_l->c.c_cdr;
+           case 1: if (_l==Cnil) {_n=-1;break;} _x0=_l->c.c_car;_l=_l->c.c_cdr;
+-          case 0: if (_n+_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-1; else fcall.argd-=_n;
+-          default: break;
++          case 0: if (_n+_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-(MAX_ARGS+1); else fcall.argd-=_n;
++          default: if (_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-(MAX_ARGS+1);break;
+         }
+         switch (_n) {
+-          case 5:  _z=_f->fun.fun_self(#*_x4,_x3,_x2,_x1,_x0,_l);break;
+-          case 4:  _z=_f->fun.fun_self(#*_x3,_x2,_x1,_x0,_l);break;
+-          case 3:  _z=_f->fun.fun_self(#*_x2,_x1,_x0,_l);break;
+-          case 2:  _z=_f->fun.fun_self(#*_x1,_x0,_l);break;
+-          case 1:  _z=_f->fun.fun_self(#*_x0,_l);break;
+-          case 0:  _z="
+-           (if (cdr args)
+-               "_f->fun.fun_self(#*_l)"
+-             "(_f->fun.fun_maxarg ? _f->fun.fun_self(#*_l) : _f->fun.fun_self())")
+-           ";break;
+-          default: _z=call_proc_cs2(#*_ll);break;
++          case 5:  _z=_reg ? (" (gcst (+ 5 la2)) "_f->fun.fun_self)(#*_x4,_x3,_x2,_x1,_x0) :
++                             (" (gcst (+ 5 la2) t) "_f->fun.fun_self)(#*_x4,_x3,_x2,_x1,_x0,_l);break;
++          case 4:  _z=_reg ? (" (gcst (+ 4 la2)) "_f->fun.fun_self)(#*_x3,_x2,_x1,_x0) :
++                             (" (gcst (+ 4 la2) t) "_f->fun.fun_self)(#*_x3,_x2,_x1,_x0,_l);break;
++          case 3:  _z=_reg ? (" (gcst (+ 3 la2)) "_f->fun.fun_self)(#*_x2,_x1,_x0) :
++                             (" (gcst (+ 3 la2) t) "_f->fun.fun_self)(#*_x2,_x1,_x0,_l);break;
++          case 2:  _z=_reg ? (" (gcst (+ 2 la2)) "_f->fun.fun_self)(#*_x1,_x0) :
++                             (" (gcst (+ 2 la2) t) "_f->fun.fun_self)(#*_x1,_x0,_l);break;
++          case 1:  _z=_reg ? (" (gcst (+ 1 la2)) "_f->fun.fun_self)(#*_x0) :
++                             (" (gcst (+ 1 la2) t) "_f->fun.fun_self)(#*_x0,_l);break;
++          case 0:  _z=_reg ? (" (gcst (+ 0 la2)) "_f->fun.fun_self)(#*) :
++                             (" (gcst (max 1 (+ 0 la2)) t) "_f->fun.fun_self)(#*_l);break;
++          "
++                               (let ((i 0))
++                                 (mapcan (lambda (x)
++                                           (declare (ignore x))
++                                           (list "case " (write-to-string (decf i)) ": _z=(" (gcst (max 1 (+ i la2)) t) "_f->fun.fun_self)(#*_l);break;
++          "))
++                                         (make-list (max 0 la2))))
++          "default: _z=call_proc_cs2(#*_ll);break;
+         }
+         if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup;
+         _z;})"))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp
+@@ -946,8 +946,8 @@
+                          ((eql ch #\n)
+                           (wt (length locs)))
+                          ((or (eql ch #\*) (eql ch #\?))
+-                          (let* ((f (char= (char fun (1- i)) #\())
+-                                 (e (char= (char fun (+ 2 i)) #\)))
++                          (let* ((f (member (char fun (1- i))  '(#\( #\{)))
++                                 (e (member (char fun (+ 2 i)) '(#\) #\})))
+                                  (locs (nthcdr max locs))
+                                  (locs (or locs (when (eql ch #\?) `((fixnum-value nil 0))))))
+                             (dolist (v locs (unless (or f e) (wt ",")))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp
+@@ -180,12 +180,23 @@
+               (when tem (truename tem))))))
+        ((setf (car *split-files*) (+ (third *split-files*) section-length))))))
++(defun pathname-type-prefix (tp)
++  (if (stringp tp) (subseq tp 0 (1+ (string-match #v"\\.[^\\.]*$" tp))) ""))
++
++(defun compile-file-pathname (pathname &key output-file &allow-other-keys)
++  (declare (optimize (safety 1)))
++  (check-type pathname pathname-designator)
++  (check-type output-file (or null pathname-designator))
++  (or output-file
++      (make-pathname :defaults pathname
++                   :type (strcat (pathname-type-prefix (pathname-type pathname)) "o"))))
++
+ (defvar *init-name* nil)
+ (defvar *function-filename* nil)
+ (defvar *c-debug* nil)
+ (defvar *dump-inl-hash* nil)
+ (defun compile-file1 (input-pathname
+-                      &key (output-file (merge-pathnames ".o" (truename input-pathname)))
++                      &key (output-file (compile-file-pathname (truename input-pathname)))
+                            (o-file t)
+                            (c-file *default-c-file*)
+                            (h-file *default-h-file*)
+@@ -242,12 +253,9 @@ Cannot compile ~a.~%" (namestring (merge
+    (when (consp *split-files*)
+      (file-position *compiler-input* (third *split-files*))
+      (setq output-file
+-         (make-pathname :device (pathname-device output-file)
+-                        :directory (pathname-directory output-file)
+-                        :name (format nil "~a~a"
+-                                      (pathname-name output-file)
+-                                      (length (second *split-files*)))
+-                        :type "o")))
++         (merge-pathnames
++          (format nil "~a~a" (pathname-name output-file) (length (second *split-files*)))
++          output-file)))
+    
+    (with-open-file (s output-file :if-does-not-exist :create))
+    (setq *init-name* (init-name output-file t))
+@@ -256,16 +264,15 @@ Cannot compile ~a.~%" (namestring (merge
+                              (namestring (truename (pathname *compiler-input*)))))
+    (let* ((eof (cons nil nil))
+-        (dir    (or (unless (null output-file) (pathname-directory output-file)) (pathname-directory input-pathname)))
+-        (name   (or (unless (null output-file) (pathname-name output-file)) (pathname-name input-pathname)))
+-        (tp     (or (unless (null output-file) (pathname-type output-file)) "o"))
+-        (device (or (unless (null output-file) (pathname-device output-file)) (pathname-device input-pathname)))
+-        (o-pathname (get-output-pathname o-file tp name dir device))
+-        (c-pathname (get-output-pathname c-file "c" name dir device))
+-        (h-pathname (get-output-pathname h-file "h" name dir device))
+-        (data-pathname (get-output-pathname data-file "data" name dir device)))
+-
+-    (declare (special dir name));FIXME
++        (device (pathname-device output-file))
++        (dir (pathname-directory output-file))
++        (name (pathname-name output-file))
++        (typ (pathname-type output-file))
++        (tp (pathname-type-prefix typ))
++        (o-pathname (get-output-pathname o-file typ name dir device))
++        (c-pathname (get-output-pathname c-file (strcat tp "c") name dir device))
++        (h-pathname (get-output-pathname h-file (strcat tp "h") name dir device))
++        (data-pathname (get-output-pathname data-file (strcat tp "data") name dir device)))
+     (init-env)
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmpopt.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmpopt.lsp
+@@ -1162,7 +1162,8 @@
+     (setf (get s 'lisp-type) l)))
+ (dolist (l '((object t)(plist proper-list)(float short-float)(double long-float)
+-           (pack (or null package)) (direl (or keyword null string))))
++           (pack (or null package)) (direl (or keyword null string))
++           (dirdir (or (eql :unspecific) proper-list))))
+   (let ((s (intern (symbol-name (car l)) 'keyword)))
+     (setf (get s 'lisp-type) (cadr l))))
+--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp
++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp
+@@ -179,7 +179,7 @@
+ (defun init-name (p &optional sp)
+   (if sp
+-      (let* ((p (truename (merge-pathnames p #p".lsp")))
++      (let* ((p (truename p))
+            (pn (pathname-name p))
+            (g (zerop (si::string-match #v"^gcl_" pn))))
+       (dash-to-underscore
+@@ -338,19 +338,8 @@
+       (when (eq type 'proclaimed-closure)
+       (wt-h "static object *Lclptr"num";"))
+-      
+-      (if (and (not (null type))
+-             (not (eq type 'proclaimed-closure))
+-             (or args (not (eq t type))))
+-        (progn
+-          (wt-h "static " d " LnkT" num "(object,...);")
+-          #-sgi3d (wt-h "static "  d " (*Lnk" num ")() = ("
+-                        d "(*)()) LnkT" num ";")
+-          #+sgi3d (wt-h "static "  d " (*Lnk" num ")();"))
+-      (progn 
+-        (wt-h "static " d " LnkT" num "();")
+-        #-sgi3d (wt-h "static "  d " (*Lnk" num ")() = LnkT" num ";")
+-        #+sgi3d (wt-h "static "  d " (*Lnk" num ")();"))))))
++      (wt-h (stub-decl (concatenate 'string "LnkT" num) args d) ";")
++      (wt-h (stub-decl (concatenate 'string "(*Lnk" num ")") args d) "=LnkT" num ";"))))
+ ;; this default will be as close to the the decision of the x3j13 committee
+@@ -1127,19 +1116,34 @@
+     (let ((x (position x +c-global-arg-types+ :test 'type<=)))
+       (if x (1+ x) 0))))
+-(defconstant +max-typed-args+
+-  (let ((x (cdr (tp-bnds (cadr (si::sig 'c-function-argd))))))
+-    (if (typep x 'fixnum) (1- (truncate (integer-length x) 2)) 0)))
++(defun argd-sz nil
++  (labels ((ff (x) (when (consp x) (if (eq (car x) 'the) (cdr (tp-bnds (cmp-norm-tp (cadr x)))) (or (ff (car x)) (ff (cdr x)))))))
++    (ff (fle 'c-function-argd))))
++
++(defconstant +real-max-typed-args+
++  (labels ((ret-max (x)
++           (when (consp x)
++             (if (eq (car x) 'the)
++                 (1- (truncate (integer-length (cdr (tp-bnds (cmp-norm-tp (cadr x))))) 2))
++                 (or (ret-max (car x)) (ret-max (cdr x)))))))
++    (ret-max (fle 'c-function-argd))))
++    
++(defconstant +max-typed-args+ #+pre-gcl 0 #-pre-gcl +real-max-typed-args+)
+ (defun adj-call-tps-max (tps &aux (i -1))
+   (mapcar (lambda (x) (type-or1 (>= (incf i) +max-typed-args+) x)) tps))
+-(defun new-proclaimed-argd (args return)
+-  (do* ((type (f-type return) (f-type (pop args)))
+-      (i 0 (+ 2 i))
+-      (ans type (logior ans (ash type i))))
+-       ((or (>= i #.(ash +max-typed-args+ 1)) (null args))
+-      (the (unsigned-byte #.(1+ (ash +max-typed-args+ 1))) ans))))
++(defun new-proclaimed-argd (args return &aux (i 0))
++  (reduce (lambda (y x &aux (j (incf i)))
++          (if (> j +max-typed-args+) y (logior y (ash (f-type x) (ash j 1)))));FIXME fragile wrt pre-gcl
++        args :initial-value (f-type return)))
++
++;; (defun new-proclaimed-argd (args return)
++;;   (do* ((type (f-type return) (f-type (pop args)))
++;;    (i 0 (+ 2 i))
++;;    (ans type (logior ans (ash type i))))
++;;        ((or (>= i #.(ash +max-typed-args+ 1)) (null args))
++;;    (the (unsigned-byte #.(ash (1+ +real-max-typed-args+) 1)) ans))))
+ (defun type-f (x)
+   (declare (fixnum x))
+--- gcl27-2.7.1.orig/compile
++++ gcl27-2.7.1/compile
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Wrapper for compilers which do not understand '-c -o'.
+-scriptversion=2024-06-19.01; # UTC
++scriptversion=2025-06-18.21; # UTC
+-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
++# Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ # Written by Tom Tromey <tromey@cygnus.com>.
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -37,11 +37,11 @@ IFS=" ""   $nl"
+ file_conv=
+-# func_file_conv build_file lazy
++# func_file_conv build_file unneeded_conversions
+ # Convert a $build file to $host form and store it in $file
+ # Currently only supports Windows hosts. If the determined conversion
+-# type is listed in (the comma separated) LAZY, no conversion will
+-# take place.
++# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no
++# conversion will take place.
+ func_file_conv ()
+ {
+   file=$1
+@@ -51,9 +51,20 @@ func_file_conv ()
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+-          file_conv=mingw
++          if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then
++            # MSYS2 environment.
++            file_conv=cygwin
++          else
++            # Original MinGW environment.
++            file_conv=mingw
++          fi
+           ;;
+-        CYGWIN* | MSYS*)
++        MSYS*)
++          # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell.
++          file_conv=cygwin
++          ;;
++        CYGWIN*)
++          # Cygwin environment.
+           file_conv=cygwin
+           ;;
+         *)
+@@ -63,12 +74,14 @@ func_file_conv ()
+       fi
+       case $file_conv/,$2, in
+       *,$file_conv,*)
++        # This is the optimization mentioned above:
++        # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert.
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+-      cygwin/* | msys/*)
+-        file=`cygpath -m "$file" || echo "$file"`
++      cygwin/*)
++        file=`cygpath -w "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+@@ -343,9 +356,9 @@ exit $ret
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 2
+-# eval: (add-hook 'before-save-hook 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp nil t)
+ # time-stamp-start: "scriptversion="
+-# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-format: "%Y-%02m-%02d.%02H"
+ # time-stamp-time-zone: "UTC0"
+ # time-stamp-end: "; # UTC"
+ # End:
+--- gcl27-2.7.1.orig/configure
++++ gcl27-2.7.1/configure
+@@ -2996,7 +2996,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_config_headers="$ac_config_headers h/gclincl.h"
+-am__api_version='1.17'
++am__api_version='1.18'
+@@ -3266,10 +3266,14 @@ am_lf='
+ '
+ case `pwd` in
+   *[\\\"\#\$\&\'\`$am_lf]*)
++    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf "%s\n" "no" >&6; }
+     as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+ esac
+ case $srcdir in
+   *[\\\"\#\$\&\'\`$am_lf\ \   ]*)
++    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
++printf "%s\n" "no" >&6; }
+     as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+ esac
+@@ -5476,7 +5480,10 @@ _ACEOF
+       break
+     fi
+   done
+-  rm -f core conftest*
++  # aligned with autoconf, so not including core; see bug#72225.
++  rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \
++    conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \
++    conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM
+   unset am_i ;;
+ esac
+ fi
+@@ -6703,7 +6710,10 @@ _ACEOF
+       break
+     fi
+   done
+-  rm -f core conftest*
++  # aligned with autoconf, so not including core; see bug#72225.
++  rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \
++    conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \
++    conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM
+   unset am_i ;;
+ esac
+ fi
+@@ -7182,12 +7192,9 @@ printf "%s\n" "removing $1 from LDFLAGS"
+ }
+-add_args_to_cppflags -std=gnu17
+-
+ add_args_to_cflags  -fsigned-char -pipe -fcommon \
+                     -fno-builtin-malloc -fno-builtin-free \
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+-                  -std=gnu17 \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+                   -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
+--- gcl27-2.7.1.orig/configure.ac
++++ gcl27-2.7.1/configure.ac
+@@ -270,12 +270,9 @@ remove_arg_from_ldflags() {
+ }
+-add_args_to_cppflags -std=gnu17
+-
+ add_args_to_cflags  -fsigned-char -pipe -fcommon \
+                     -fno-builtin-malloc -fno-builtin-free \
+                     -fno-PIE -fno-pie -fno-PIC -fno-pic \
+-                  -std=gnu17 \
+                   -Wall \
+                   -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \
+                   -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \
+--- gcl27-2.7.1.orig/depcomp
++++ gcl27-2.7.1/depcomp
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # depcomp - compile a program generating dependencies as side-effects
+-scriptversion=2024-06-19.01; # UTC
++scriptversion=2025-06-18.21; # UTC
+-# Copyright (C) 1999-2024 Free Software Foundation, Inc.
++# Copyright (C) 1999-2025 Free Software Foundation, Inc.
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -784,9 +784,9 @@ exit 0
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 2
+-# eval: (add-hook 'before-save-hook 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp nil t)
+ # time-stamp-start: "scriptversion="
+-# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-format: "%Y-%02m-%02d.%02H"
+ # time-stamp-time-zone: "UTC0"
+ # time-stamp-end: "; # UTC"
+ # End:
+--- gcl27-2.7.1.orig/gcl-tk/comm.c
++++ gcl27-2.7.1/gcl-tk/comm.c
+@@ -79,8 +79,7 @@ setup_connection_state(int fd)
+ /* P is supposed to start with a hdr  and run N bytes. */
+ static void
+-scan_headers(sfd)
+-     struct connection_state *sfd;
++scan_headers(struct connection_state *sfd)
+ { struct our_header *hdr;
+   char *p = sfd->valid_data + sfd->next_packet_offset;
+   int n = sfd->valid_data_size - sfd->next_packet_offset;
+@@ -118,11 +117,7 @@ send_confirmation(struct connection_stat
+ */   
+ static int
+-read1(sfd,p,m,timeout)
+-struct connection_state* sfd;     
+-char *p;
+-int timeout;
+-int m;
++read1(struct connection_state* sfd,char *p,int m,int timeout)
+ { int nread=0;
+   int wanted = m;
+   int length;
+@@ -217,10 +212,7 @@ static void
+ connection_failure(char *);
+ int
+-write1(sfd,p,bytes)
+-     struct connection_state *sfd;
+-     const char *p;
+-     int bytes;
++write1(struct connection_state *sfd,const char *p,int bytes)
+ { 
+   int bs;
+   int to_send = bytes;
+--- gcl27-2.7.1.orig/gcl-tk/guis.c
++++ gcl27-2.7.1/gcl-tk/guis.c
+@@ -93,7 +93,7 @@ int fDebugSockets;
+ int hdl = -1;
+-void TkX_Wish ();
++void TkX_Wish (int,char *[]);
+ pid_t parent;
+  
+@@ -335,11 +335,7 @@ char *envp[];
+ }
+ struct connection_state *
+-sock_connect_to_name(host_id,  name, async)
+-     char *host_id;
+-     int name;
+-     int async;
+-     
++sock_connect_to_name(char *host_id,int  name,int async)
+ {
+   struct sockaddr_in addr;
+   int fd, n, rc;
+@@ -360,8 +356,7 @@ sock_connect_to_name(host_id,  name, asy
+ }
+ void
+-sock_close_connection(sfd)
+-struct connection_state *sfd;     
++sock_close_connection(struct connection_state *sfd)
+ {
+   close( sfd->fd );
+   free(sfd->read_buffer);
+@@ -387,16 +382,8 @@ struct connection_state *sfd;
+ static int message_id;
+ int
+-sock_write_str2( sfd, type, hdr,
+-              hdrsize,text, length )
+-
+-struct connection_state *sfd;
+-enum mtype type;
+- char *hdr;
+-int hdrsize;
+-const char *text;
+-int length;
+-     
++sock_write_str2(struct connection_state *sfd,enum mtype type,char *hdr,
++              int hdrsize,const char *text,int length )
+ {
+   char buf[0x1000];
+   char *p = buf;
+@@ -447,10 +434,7 @@ int length;
+ struct message_header *
+-guiParseMsg1(sfd,buf,bufleng)
+-  char *buf;
+-int bufleng;
+-struct connection_state *sfd;
++guiParseMsg1(struct connection_state *sfd,char *buf,int bufleng)
+ { int m;
+   int body_length;
+   int tot;
+@@ -489,12 +473,10 @@ error(s)
+ }
+ void
+-write_timeout_error(s)
+-     char *s;
++write_timeout_error(char *s)
+ { fprintf(stderr,"write timeout: %s",s); abort();
+ }
+ void
+-connection_failure(s)
+-     char *s;
++connection_failure(char *s)
+ { fprintf(stderr,"connection_failure:%s",s); abort();
+ }
+--- gcl27-2.7.1.orig/gcl-tk/guis.h
++++ gcl27-2.7.1/gcl-tk/guis.h
+@@ -70,14 +70,14 @@ typedef struct _guiMsg {
+ */
+ #include "sheader.h"
+-struct message_header * guiParseMsg1();
++struct message_header *guiParseMsg1(struct connection_state *,char *,int);
+ extern pid_t parent;
+-struct connection_state *
+-sock_connect_to_name();
+-void sock_close_connection( );
++struct connection_state *sock_connect_to_name(char *,int,int);
++void sock_close_connection(struct connection_state *);
++
+ int sock_read_str();
+ guiMsg *guiParseMsg();
+--- gcl27-2.7.1.orig/gcl-tk/sheader.h
++++ gcl27-2.7.1/gcl-tk/sheader.h
+@@ -109,4 +109,4 @@ extern struct connection_state *dsfd;
+ #define OBJ_TO_CONNECTION_STATE(x) \
+   ((struct connection_state *)(void *)((x)->ust.ust_self))
+-struct connection_state * setup_connection_state();
++struct connection_state * setup_connection_state(int);
+--- gcl27-2.7.1.orig/gcl-tk/tkAppInit.c
++++ gcl27-2.7.1/gcl-tk/tkAppInit.c
+@@ -61,8 +61,7 @@ int *tclDummyMainPtr = (int *) main;
+  */
+ int
+-Tcl_AppInit(interp)
+-    Tcl_Interp *interp;               /* Interpreter for application. */
++Tcl_AppInit(Tcl_Interp *interp)/* Interpreter for application. */
+ {
+     Tk_Window mmain;
+ /*
+--- gcl27-2.7.1.orig/gcl-tk/tkMain.c
++++ gcl27-2.7.1/gcl-tk/tkMain.c
+@@ -57,8 +57,9 @@
+ #include <sys/types.h>
+ #include <signal.h>
+ #include <errno.h>
++#include <stdbool.h>
+-int writable_malloc=0; /*FIXME, don't wrap fopen here, exclude notcomp.h or equivalent */
++bool writable_malloc=0; /*FIXME, don't wrap fopen here, exclude notcomp.h or equivalent */
+ #include "guis.h"
+ struct connection_state *dsfd;
+@@ -128,8 +129,7 @@ dfprintf(FILE *fp,char *s,...) {
+ #define SIGNAL_ERROR TCL_signal_error
+ static void
+-TCL_signal_error(x)
+-     char *x;
++TCL_signal_error(char *x)
+ {char buf[300] ;
+   snprintf(buf,sizeof(buf),"error %s",x);
+  Tcl_Eval(interp,buf);
+@@ -196,9 +196,7 @@ EXTERN Tk_Window   TkCreateMainWindow _ANS
+                               char * screenName, char * baseName));
+ void
+-TkX_Wish (argc, argv)
+-    int argc;                         /* Number of arguments. */
+-    char **argv;                      /* Array of argument strings. */
++TkX_Wish (int argc,char **argv)
+ {
+     char *args, *p;
+     const char *msg;
+@@ -402,18 +400,11 @@ static char *being_set_by_lisp;
+ static char *
+ tell_lisp_var_changed(
+-                clientData,
+-               interp,
+-               name1,
+-               name2,
+-                flags)
+-
+-          ClientData clientData;
+-               Tcl_Interp *interp;
+-               char *name1;
+-               char *name2;
+-               int flags;     
+-     
++                ClientData clientData,
++               Tcl_Interp *interp,
++               const char *name1,
++               const char *name2,
++                int flags)
+ {
+   if (being_set_by_lisp == 0)
+@@ -459,9 +450,7 @@ tell_lisp_var_changed(
+     /* ARGSUSED */
+ static void
+-StdinProc(clientData, mask)
+-     ClientData clientData;           /* Not used. */
+-     int mask;                                /* Not used. */
++StdinProc(ClientData clientData,int mask)
+ {
+   int fNotDone;
+   char *cmd;
+@@ -606,13 +595,9 @@ typedef struct _ClientDataLispObject {
+ } ClientDataLispObject;
+ static int
+-TclGenericCommandProcedure( clientData,
+-                         pinterp,
+-                          argc, argv)
+-     ClientData clientData;
+-     Tcl_Interp *pinterp;
+-     int argc;
+-     char *argv[];
++TclGenericCommandProcedure(ClientData clientData,
++                         Tcl_Interp *pinterp,
++                          int argc,const char **argv)
+ {
+   char szCmd[CMD_SIZE];
+   ClientDataLispObject *pcdlo = (ClientDataLispObject *)clientData;
+@@ -623,7 +608,7 @@ TclGenericCommandProcedure( clientData,
+   STORE_3BYTES(q,(pcdlo->iSlot));
+   q += 3;
+   if (p == 0)
+-    { char *arg = (argc > 1 ? argv[1] : "");
++    { const char *arg = (argc > 1 ? argv[1] : "");
+       int m = strlen(arg);
+       if (m > CMD_SIZE -50)
+       SIGNAL_ERROR("too big command");
+@@ -663,8 +648,7 @@ TclGenericCommandProcedure( clientData,
+ static void
+-guiCreateCommand( idLispObject,  iSlot , arglist)
+-     int idLispObject; int iSlot ; char *arglist;
++guiCreateCommand(int idLispObject,int iSlot,char *arglist)
+ {
+   char szNameCmdProc[2000],*c;
+   ClientDataLispObject *pcdlo;
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2pre7"
++"Version_2_7_2pre8"
+--- gcl27-2.7.1.orig/git_touch
++++ gcl27-2.7.1/git_touch
+@@ -1,7 +1,15 @@
+ #!/bin/bash
+-touch aclocal.m4 \
+-      configure.ac gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \
++SLEEP=$1
++
++for i in  \
++      configure.ac aclocal.m4 gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \
+       configure \
+       Makefile.am Makefile.in \
+-      info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info
++      info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info ; do
++    touch $i
++    if [ "$SLEEP" != "" ] ; then
++      echo $i
++      sleep $SLEEP
++    fi
++done
+--- gcl27-2.7.1.orig/h/att_ext.h
++++ gcl27-2.7.1/h/att_ext.h
+@@ -144,7 +144,6 @@ EXTER object FASL_string;
+ /*  frame.c  */
+ /*  gbc.c  */
+-EXTER bool GBC_enable;
+ #ifdef CAN_UNRANDOMIZE_SBRK
+ EXTER bool gcl_unrandomized;
+@@ -418,4 +417,4 @@ EXTER object sSPmemory;
+ EXTER object sSPinit;
+ /* string.d */
+-int  (*casefun)();
++int  (*casefun)(int,int *);
+--- gcl27-2.7.1.orig/h/cmponly_last.h
++++ gcl27-2.7.1/h/cmponly_last.h
+@@ -5,3 +5,6 @@
+ /* #undef _setjmp */
+ /* #define _setjmp ((int(*)(void *))dlsetjmp) */
+ /* #endif */
++
++int setjmp(void *);
++int _setjmp(void *);
+--- gcl27-2.7.1.orig/h/compdefs.h
++++ gcl27-2.7.1/h/compdefs.h
+@@ -93,3 +93,5 @@ aref1
+ OBJ_ALIGNED_STACK_ALLOC(x)
+ NO_RETURN
+ CHAR_SIZE
++MAX_ARGS
++bool
+--- gcl27-2.7.1.orig/h/compprotos.h
++++ gcl27-2.7.1/h/compprotos.h
+@@ -16,9 +16,8 @@ int number_zerop(object);
+ long int fixint(object);
+ object alloc_object(enum type);
+ object call_proc_cs2(object,...);
+-object call_proc_new(object,ufixnum,ufixnum,void **,ufixnum,object,va_list);
+-object call_proc_new_nval(object,ufixnum,ufixnum,void **,ufixnum,object,...);
+-object coerce_to_string();
++object call_proc_new23(object,ufixnum,ufixnum,void **,ufixnum,object *);
++object coerce_to_string(object);
+ object fixnum_big_shift(fixnum,fixnum);
+ object fixnum_times(fixnum,fixnum);
+ object fSgensym0(void);
+@@ -102,6 +101,4 @@ object file_stream(object);
+ fixnum fixnum_expt(fixnum, fixnum);
+ char *gcl_gets(char *,int);
+ int gcl_puts(const char *);
+-int setjmp();
+-int _setjmp();
+ char *object_to_string(object);
+--- gcl27-2.7.1.orig/h/error.h
++++ gcl27-2.7.1/h/error.h
+@@ -99,7 +99,7 @@ object ihs_top_function_name(ihs_ptr h);
+                                                  sKformat_control,make_simple_string(a_),sKformat_arguments,list(1,(b_)))
+ #define FEtoo_few_arguments(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+-                      sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\
++                      sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\
+                       sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_))))
+ #define FEwrong_no_args(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+@@ -112,7 +112,7 @@ object ihs_top_function_name(ihs_ptr h);
+ #define FEtoo_many_arguments(a_,b_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+-                      sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\
++                      sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\
+                       sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_))))
+ #define FEtoo_many_argumentsF(a_) \
+   Icall_error_handler(sLprogram_error,null_string,4,\
+--- gcl27-2.7.1.orig/h/linux.h
++++ gcl27-2.7.1/h/linux.h
+@@ -165,7 +165,7 @@ do { int c = 0; \
+ #else
+ #define FPE_TCODE(x_) \
+-  {ufixnum _x=(x_),_y=0;                      \
++  ({ufixnum _x=(x_),_y=0;                     \
+    switch(_x) {                                       \
+    case FPE_FLTINV: _y=FE_INVALID;break;      \
+    case FPE_FLTDIV: _y=FE_DIVBYZERO;break;    \
+@@ -174,7 +174,7 @@ do { int c = 0; \
+    case FPE_FLTRES: _y=FE_INEXACT;break;      \
+    }                                          \
+    _y;                                                \
+-  }
++  })
+ #define FPE_CODE(i_,v_) make_fixnum(FPE_TCODE((fixnum)SF(i_)->si_code))
+ #define FPE_ADDR(i_,v_) make_fixnum((fixnum)SF(i_)->si_addr)
+ #define FPE_CTXT(v_) Cnil
+--- gcl27-2.7.1.orig/h/lu.h
++++ gcl27-2.7.1/h/lu.h
+@@ -47,6 +47,7 @@ typedef void   (*vfunc)();
+ typedef object integer;
+ typedef object keyword;
+ typedef object direl;
++typedef object dirdir;
+ typedef object plist;
+ typedef object pack;
+ typedef object real;
+@@ -57,8 +58,7 @@ typedef float  shortfloat;
+ typedef double longfloat;
+ typedef float  complex fcomplex;
+ typedef double complex dcomplex;
+-#undef bool
+-typedef int bool;
++#include <stdbool.h>
+ typedef unsigned short int ushort;
+ typedef unsigned int uint;
+@@ -462,7 +462,7 @@ struct pathname {
+   direl  pn_host;      /*  host  */
+   direl  pn_device;    /*  device  */
+-  plist  pn_directory; /*  directory  */
++  dirdir pn_directory; /*  directory  */
+   direl  pn_name;      /*  name  */
+   direl  pn_type;      /*  type  */
+   direl  pn_version;   /*  version  */
+--- gcl27-2.7.1.orig/h/notcomp.h
++++ gcl27-2.7.1/h/notcomp.h
+@@ -10,7 +10,7 @@
+ EXTER int *cs_org;     
+-EXTER int GBC_enable;
++EXTER bool GBC_enable;
+ #define CHAR_SIZE 8
+ EXTER object sSAnotify_gbcA;
+@@ -20,7 +20,7 @@ EXTER int interrupt_flag,interrupt_enabl
+ /* void sigint(),sigalrm(); */
+-EXTER int gc_enabled, saving_system;
++EXTER bool gc_enabled, saving_system;
+ EXTER object lisp_package,user_package;
+ EXTER char *core_end;
+--- gcl27-2.7.1.orig/h/protoize.h
++++ gcl27-2.7.1/h/protoize.h
+@@ -366,7 +366,7 @@ object funcall_vec(object,fixnum,object
+ /* unixtime.c:173:OF */ extern void gcl_init_unixtime (void); /* () */
+ /* user_init.c:2:OF */ extern object user_init (void); /* () */
+ /* user_init.c:2:OF */ extern int user_match (const char *,int n); /* () */
+-/* usig.c:49:OF */ extern void gcl_signal (int signo, void (*handler) (/* ??? */)); /* (signo, handler) int signo; void (*handler)(); */
++/* usig.c:49:OF */ extern void gcl_signal (int signo, void (*handler)(int,long,void *,char *)); /* (signo, handler) int signo; void (*handler)(); */
+ /* usig.c:92:OF */ extern int unblock_signals (int n, int m); /* (n, m) int n; int m; */
+ /* usig.c:119:OF */ extern void unblock_sigusr_sigio (void); /* () */
+ /* usig.c:182:OF */ extern void install_default_signals (void); /* () */
+@@ -1674,3 +1674,6 @@ void stack_list(void);
+ void *msbrk(intptr_t);
+ int msbrk_init(void);
+ int msbrk_end(void);
++
++object
++quick_call_function_vec(object,ufixnum,object *);
+--- gcl27-2.7.1.orig/h/usig.h
++++ gcl27-2.7.1/h/usig.h
+@@ -1,4 +1,4 @@
+-typedef void (*handler_function_type)(int,siginfo_t *,void *);
++typedef void (*handler_function_type)(int,long,void *,char *);
+ EXTER handler_function_type our_signal_handler[32];
+--- gcl27-2.7.1.orig/install-sh
++++ gcl27-2.7.1/install-sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # install - install a program, script, or datafile
+-scriptversion=2024-06-19.01; # UTC
++scriptversion=2025-06-18.21; # UTC
+ # This originates from X11R5 (mit/util/scripts/install.sh), which was
+ # later released in X11R6 (xc/config/util/install.sh) with the
+@@ -533,9 +533,9 @@ do
+ done
+ # Local variables:
+-# eval: (add-hook 'before-save-hook 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp nil t)
+ # time-stamp-start: "scriptversion="
+-# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-format: "%Y-%02m-%02d.%02H"
+ # time-stamp-time-zone: "UTC0"
+ # time-stamp-end: "; # UTC"
+ # End:
+--- gcl27-2.7.1.orig/lsp/gcl_deftype.lsp
++++ gcl27-2.7.1/lsp/gcl_deftype.lsp
+@@ -6,7 +6,7 @@
+         non-negative-short-float negative-long-float positive-long-float
+         non-positive-long-float non-negative-long-float negative-float
+         positive-float non-positive-float non-negative-float negative-real
+-        positive-real non-positive-real non-negative-real complex*
++        positive-real non-positive-real non-negative-real complex* pathname-designator
+         complex-integer complex-integer-ratio complex-ratio-integer seqind seqbnd
+         complex-ratio complex-short-float complex-long-float make-complex unordered));FIXME
+--- gcl27-2.7.1.orig/lsp/gcl_directory.lsp
++++ gcl27-2.7.1/lsp/gcl_directory.lsp
+@@ -49,11 +49,16 @@
+                              (expand-wild-directory d (cons :relative (cdr x)) f q e)) :directory));FIXME
+           ((funcall f z y))))))
+-(defun directory (p &key &aux (p (translate-logical-pathname p))(d (pathname-directory p))
+-                  (c (unless (eq (car d) :absolute) (make-frame (namestring *current-directory*))))
+-                  (lc (when c (length c)))
+-                  (filesp (or (pathname-name p) (pathname-type p)))
+-                  (v (compile-regexp (to-regexp p)))(*up-key* :back) r)
++(defun directory (p &key &aux (p (merge-pathnames (translate-logical-pathname p)
++                                                #.`(load-time-value
++                                                    (make-pathname
++                                                     ,@(mapcan (lambda (x) (list x (if (eq x :directory) `'(:relative) :unspecific)))
++                                                               +pathname-keys+)))))
++                         (d (pathname-directory p))
++                         (c (unless (eq (car d) :absolute) (make-frame (namestring *current-directory*))))
++                         (lc (when c (length c)))
++                         (filesp (or (pathname-name p) (pathname-type p)))
++                         (v (compile-regexp (to-regexp p)))(*up-key* :back) r)
+   (expand-wild-directory (pathname-device p) d
+    (lambda (dir exp &aux (pexp (pathname (if c (vector-push-string c exp 0 lc) exp))))
+      (if filesp
+--- gcl27-2.7.1.orig/lsp/gcl_logical_pathname_translations.lsp
++++ gcl27-2.7.1/lsp/gcl_logical_pathname_translations.lsp
+@@ -24,5 +24,5 @@
+     (error "No translations found for ~s" k)))
+ (defun logical-pathname-host-p (host)
+-  (when host
++  (when (stringp host)
+     (logical-pathname-translations host)))
+--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp
++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp
+@@ -47,7 +47,8 @@
+ (defconstant +physical-pathname-defaults+ '(("" "" "" "")
+                                           ("" "" "" "")
+-                                          ("" "(/?([^/]+/)*)" "" "" "" "([^/]+/)" "/" "/")
++                                          ("" "(/?([^/]*/)*)" "" "" "" "([^/]*/)" "/" "/")
++;                                         ("" "(/?([^/]+/)*)" "" "" "" "([^/]+/)" "/" "/")
+                                           ("" "([^/.]*)" "" ".")
+                                           ("." "(\\.[^/]*)?" "" "")
+                                           ("" "" "" "")))
+@@ -88,7 +89,8 @@
+       ((eql :wild) (if rp (list dflt) (elsub "*" x rp lp)))
+       ((eql :newest) (elsub (if rp "(newest|NEWEST)" "NEWEST") x rp lp))
+       ((member :up :back) (elsub ".." x rp lp))
+-      ((member nil :unspecific) (when rp (list dflt)))
++      (null (when rp (list dflt)))
++      ((eql :unspecific) nil)
+       (cons (cons
+            (if (eq (car el) :absolute) (if lp "" "/") (if lp ";" ""))
+            (mapcan (lambda (z) (elsub z y rp lp)) (cdr el)))))
+@@ -103,15 +105,17 @@
+                x (if lp +logical-pathname-defaults+ +physical-pathname-defaults+))))
+ (defun directory-list-check (l)
+-  (when (listp l)
+-    (when (member (car l) '(:absolute :relative))
+-      (mapl (lambda (x &aux (c (car x))(d (cadr x)))
+-            (when (and (member d '(:up :back)) (member c '(:absolute :wild-inferiors)))
+-              (return-from directory-list-check nil))) l))))
++  (if (atom l) l
++      (when (member (car l) '(:absolute :relative))
++      (mapl (lambda (x &aux (c (car x))(d (cadr x)))
++              (when (and (member d '(:up :back)) (member c '(:absolute :wild-inferiors)))
++                (return-from directory-list-check nil)))
++            l))))
+     
+ (defun canonicalize-pathname-directory (l)
+   (cond ((eq l :wild) (canonicalize-pathname-directory '(:absolute :wild-inferiors)))
+       ((stringp l) (canonicalize-pathname-directory (list :absolute l)))
++      ((eq l :unspecific) l)
+       ((mapl (lambda (x &aux (c (car x))
+                           (skip (cond ((equal c ".") (cdr x))
+                                       ((when (or (stringp c) (eq c :wild)) (eq (cadr x) :back)) (cddr x)))))
+--- gcl27-2.7.1.orig/lsp/gcl_merge_pathnames.lsp
++++ gcl27-2.7.1/lsp/gcl_merge_pathnames.lsp
+@@ -11,7 +11,7 @@
+      :host (or (pathname-host pn) (def (pathname-host def-pn)))
+      :device (or (pathname-device pn) (def (pathname-device def-pn)))
+      :directory (let ((d (pathname-directory pn))(defd (pathname-directory def-pn)))
+-                (or (def (when (and defd (eq (car d) :relative)) (append defd (cdr d)))) d (def defd)))
++                (or (def (when (and defd (listp d) (listp defd) (eq (car d) :relative)) (append defd (cdr d)))) d (def defd)))
+      :name (or (pathname-name pn) (def (pathname-name def-pn)))
+      :type (or (pathname-type pn) (def (pathname-type def-pn)))
+      :version (or (pathname-version pn) (def (unless (pathname-name pn) (pathname-version def-pn))) (def def-v))
+--- gcl27-2.7.1.orig/lsp/gcl_mislib.lsp
++++ gcl27-2.7.1/lsp/gcl_mislib.lsp
+@@ -104,9 +104,6 @@
+   (decode-universal-time (get-universal-time)))
+ ;Courtesy Paul Dietz
+-(defun compile-file-pathname (pathname)
+-  (declare (optimize (safety 2)))
+-  (make-pathname :defaults pathname :type "o"))
+ (defun constantly (x)
+   (declare (optimize (safety 2)))
+--- gcl27-2.7.1.orig/lsp/gcl_seqlib.lsp
++++ gcl27-2.7.1/lsp/gcl_seqlib.lsp
+@@ -384,17 +384,17 @@
+                 (push ns ii) (push ns1 ii))
+               (setq ls nls fi nfi))))))))
+-
+ (defun stable-sort (sequence predicate &key key)
+   (declare (optimize (safety 1)))
+   (check-type sequence proper-sequence)
+-  (typecase 
+-   sequence
+-   (list (list-merge-sort sequence predicate key))
+-   (string (sort sequence predicate :key key))
+-   (bit-vector (sort sequence predicate :key key))
+-   (otherwise 
+-    (replace sequence (list-merge-sort (coerce sequence 'list) predicate key)))))
++  (if (listp sequence)
++      (list-merge-sort sequence predicate key)
++      (let (r rp)
++      (dotimes (i (length sequence))
++        (let ((tmp (cons (aref sequence i) nil)))
++          (declare (dynamic-extent tmp))
++          (setq rp (if rp (cdr (rplacd rp tmp)) (setq r tmp)))))
++      (replace sequence (list-merge-sort r predicate key)))))
+ (eval-when (compile eval)
+   (defmacro f+ (x y) `(the fixnum (+ (the fixnum ,x) (the fixnum ,y))))
+--- gcl27-2.7.1.orig/missing
++++ gcl27-2.7.1/missing
+@@ -1,11 +1,11 @@
+ #! /bin/sh
+ # Common wrapper for a few potentially missing GNU and other programs.
+-scriptversion=2024-06-07.14; # UTC
++scriptversion=2025-06-18.21; # UTC
+ # shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells
+-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
++# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+ # This program is free software; you can redistribute it and/or modify
+@@ -228,9 +228,9 @@ give_advice "$1" | sed -e '1s/^/WARNING:
+ exit $st
+ # Local variables:
+-# eval: (add-hook 'before-save-hook 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp nil t)
+ # time-stamp-start: "scriptversion="
+-# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-format: "%Y-%02m-%02d.%02H"
+ # time-stamp-time-zone: "UTC0"
+ # time-stamp-end: "; # UTC"
+ # End:
+--- gcl27-2.7.1.orig/o/character.d
++++ gcl27-2.7.1/o/character.d
+@@ -108,9 +108,8 @@ Foundation, 675 Mass Ave, Cambridge, MA
+       If r > 36 or i is not a digit, -1 is returned.
+ */
+ int
+-digitp(i, r)
+-int i, r;
+-{
++digitp(int i,int r) {
++
+       if ('0' <= i && i <= '9' && 1 < r && i < '0' + r)
+               return(i - '0');
+       if ('A' <= i && 10 < r && r <= 36 && i < 'A' + (r - 10))
+@@ -149,9 +148,8 @@ int i, r;
+ @)
+ bool
+-char_eq(x, y)
+-object x, y;
+-{
++char_eq(object x,object y) {
++
+       return(char_code(x) == char_code(y)
+           && char_bits(x) == char_bits(y)
+           && char_font(x) == char_font(y));
+@@ -186,9 +184,8 @@ object x, y;
+ static int
+-char_cmp(x, y)
+-object x, y;
+-{
++char_cmp(object x,object y) {
++
+       if (char_font(x) < char_font(y))
+               return(-1);
+       if (char_font(x) > char_font(y))
+@@ -205,9 +202,8 @@ object x, y;
+ }
+ static void
+-Lchar_cmp(s, t)
+-int s, t;
+-{
++Lchar_cmp(int s,int t) {
++
+       int narg, i;
+       narg = vs_top - vs_base;
+@@ -232,9 +228,8 @@ LFD(Lchar_ge)() { Lchar_cmp(-1, 0); }
+ bool
+-char_equal(x, y)
+-object x, y;
+-{
++char_equal(object x,object y) {
++
+       int i, j;
+       i = char_code(x);
+@@ -273,9 +268,8 @@ object x, y;
+ static int
+-char_compare(x, y)
+-object x, y;
+-{
++char_compare(object x,object y) {
++
+       int i, j;
+       i = char_code(x);
+@@ -293,9 +287,8 @@ object x, y;
+ }
+ static void
+-Lchar_compare(s, t)
+-int s, t;
+-{
++Lchar_compare(int s,int t) {
++
+       int narg, i;
+       narg = vs_top - vs_base;
+@@ -320,9 +313,8 @@ LFD(Lchar_not_lessp)()    { Lchar_compar
+ object
+-coerce_to_character(x)
+-object x;
+-{
++coerce_to_character(object x) {
++
+ BEGIN:
+       switch (type_of(x)) {
+       case t_fixnum:
+@@ -408,9 +400,8 @@ BEGIN:
+ @)
+ int
+-digit_weight(w, r)
+-int w, r;
+-{
++digit_weight(int w,int r) {
++
+       if (r < 2 || r > 36 || w < 0 || w >= r)
+               return(-1);
+       if (w < 10)
+--- gcl27-2.7.1.orig/o/cmac.c
++++ gcl27-2.7.1/o/cmac.c
+@@ -55,9 +55,9 @@ dblrem(int a, int b, int mod)
+ #else
+ static int
+-dblrem(a,b,mod)
+-int a,b,mod;
+-{int h,sign;
++dblrem(int a,int b,int mod) {
++
++ int h,sign;
+  if (a<0) 
+    {a= -a; sign= (b<0)? (b= -b,1) :-1;}
+  else { sign= (b<0) ? (b= -b,-1) : 1;}
+--- gcl27-2.7.1.orig/o/eval.c
++++ gcl27-2.7.1/o/eval.c
+@@ -66,15 +66,6 @@ object sSAbreak_stepA;
+   ({enum ftype _t=type;\
+      _t==f_object ? a : (_t==f_fixnum ? make_fixnum((fixnum)a) : make_integer((GEN)a));})
+-#include "apply_n.h"
+-
+-static object
+-quick_call_function_vec(object fun,ufixnum n,object *b) {
+-
+-  return c_apply_n_fun(fun,n,b);
+-
+-}
+-
+ static object
+ quick_call_function_vec_coerce(object fun,ufixnum n,object *b) {
+@@ -704,7 +695,7 @@ APPLICATION:
+               ihs_check;
+               ihs_push(form);
+               ihs_top->ihs_base = lex_env;
+-              ((void (*)())fun->s.s_sfdef)(MMcdr(form));
++              ((void (*)(object))fun->s.s_sfdef)(MMcdr(form));
+               CHECK_AVMA;
+               ihs_pop();
+               return;
+--- gcl27-2.7.1.orig/o/fasdump.c
++++ gcl27-2.7.1/o/fasdump.c
+@@ -29,7 +29,7 @@ static void
+ clrhash(object);
+-object coerce_stream();
++object coerce_stream(object,int);
+ static object fasd_patch_sharp(object x, int depth);
+ object make_pathname ();
+--- gcl27-2.7.1.orig/o/file.d
++++ gcl27-2.7.1/o/file.d
+@@ -106,9 +106,7 @@ object LSP_string;
+ object sSAignore_eof_on_terminal_ioA;
+ static bool
+-feof1(fp)
+-FILE *fp;
+-{
++feof1(FILE *fp) {
+ #ifdef USE_READLINE
+   if (readline_on && fp==rl_instream && rl_line_buffer && *rl_line_buffer==EOF)
+@@ -199,9 +197,8 @@ DEFUN("TERMINAL-INPUT-STREAM-P",object,f
+       but only checks the mode of the stream (sm_mode).
+ */
+ static bool
+-input_stream_p(strm)
+-object strm;
+-{
++input_stream_p(object strm) {
++
+ BEGIN:
+       switch (strm->sm.sm_mode) {
+       case smm_input:
+@@ -256,9 +253,8 @@ BEGIN:
+       but only checks the mode of the stream (sm_mode).
+ */
+ static bool
+-output_stream_p(strm)
+-object strm;
+-{
++output_stream_p(object strm) {
++
+ BEGIN:
+       switch (strm->sm.sm_mode) {
+       case smm_input:
+@@ -306,9 +302,8 @@ BEGIN:
+ }
+ static object
+-stream_element_type(strm)
+-object strm;
+-{
++stream_element_type(object strm) {
++
+       object x;
+ BEGIN:
+@@ -656,9 +651,8 @@ fLinteractive_stream_p(object x) {
+ #endif
+ object
+-make_two_way_stream(istrm, ostrm)
+-object istrm, ostrm;
+-{
++make_two_way_stream(object istrm,object ostrm) {
++
+       object strm;
+       strm = alloc_object(t_stream);
+@@ -673,9 +667,8 @@ object istrm, ostrm;
+ }
+ static object
+-make_echo_stream(istrm, ostrm)
+-object istrm, ostrm;
+-{
++make_echo_stream(object istrm,object ostrm) {
++
+       object strm;
+       strm = make_two_way_stream(istrm, ostrm);
+@@ -764,9 +757,8 @@ DEFUN("STRING-OUTPUT-STREAM-P",object,fS
+ }
+ object
+-make_string_output_stream(line_length)
+-int line_length;
+-{
++make_string_output_stream(int line_length) {
++
+       object strng, strm;
+       vs_mark;
+@@ -786,9 +778,8 @@ int line_length;
+ }
+ static object
+-get_output_stream_string(strm)
+-object strm;
+-{
++get_output_stream_string(object strm) {
++
+       object strng;
+       strng = copy_simple_string(STRING_STREAM_STRING(strm));
+@@ -803,9 +794,8 @@ cannot_read(object);
+ static void
+ closed_stream(object);
\fint
+-readc_stream(strm)
+-object strm;
+-{
++readc_stream(object strm) {
++
+       int c;
+ BEGIN:
+@@ -1515,9 +1505,8 @@ BEGIN:
+ }
+ int
+-file_position(strm)
+-object strm;
+-{
++file_position(object strm) {
++
+ BEGIN:
+       switch (strm->sm.sm_mode) {
+       case smm_input:
+@@ -1564,10 +1553,8 @@ BEGIN:
+ }
+ int
+-file_position_set(strm, disp)
+-object strm;
+-int disp;
+-{
++file_position_set(object strm,int disp) {
++
+ BEGIN:
+       switch (strm->sm.sm_mode) {
+       case smm_socket:
+@@ -1615,9 +1602,8 @@ BEGIN:
+ }
+ static int
+-file_length(strm)
+-object strm;
+-{
++file_length(object strm) {
++
+  BEGIN:
+       switch (strm->sm.sm_mode) {
+       case smm_input:
+@@ -2243,30 +2229,22 @@ LFD(siLcopy_stream)()
+ }
+ static void
+-cannot_open(fn)
+-object fn;
+-{
++cannot_open(object fn) {
+       FILE_ERROR(fn,"Cannot open");
+ }
+ static void
+-cannot_create(fn)
+-object fn;
+-{
++cannot_create(object fn) {
+       FILE_ERROR(fn,"Cannot create");
+ }
+ static void
+-cannot_read(strm)
+-object strm;
+-{
++cannot_read(object strm) {
+       FEerror("Cannot read the stream ~S.", 1, strm);
+ }
+ static void
+-cannot_write(strm)
+-object strm;
+-{
++cannot_write(object strm) {
+       FEerror("Cannot write to the stream ~S.", 1, strm);
+ }
+@@ -2285,9 +2263,8 @@ FFN(siLuser_stream_state)()
+ #endif
+ static void
+-closed_stream(strm)
+-object strm;
+-{
++closed_stream(object strm) {
++
+   if (!GET_STREAM_FLAG(strm,gcl_sm_had_error))
+     {
+         SET_STREAM_FLAG(strm,gcl_sm_had_error,1);
+@@ -2308,10 +2285,8 @@ object strm;
+    */
+ object
+-coerce_stream(strm,out)
+-object strm;
+-int out;
+-{
++coerce_stream(object strm,int out) {
++
+  BEGIN:
+  if (type_of(strm) != t_stream)
+    FEwrong_type_argument(sLstream, strm);
+@@ -2416,10 +2391,8 @@ DEFUN("FREAD",object,fSfread,SI,4,4,NONE
+   of the buffer may be changed.
+  */
+ static void
+-putCharGclSocket(strm,ch)
+-  object strm;
+-  int ch;
+-{
++putCharGclSocket(object strm,int ch) {
++
+   object bufp = SOCKET_STREAM_BUFFER(strm);
+  AGAIN:
+@@ -2435,10 +2408,8 @@ putCharGclSocket(strm,ch)
+ }
+ static void
+-gclFlushSocket(strm)
+-     object strm;
++gclFlushSocket(object strm) {
+-{
+     int fd = SOCKET_STREAM_FD(strm);
+     object bufp = SOCKET_STREAM_BUFFER(strm);
+     int i=0;
+@@ -2470,14 +2441,8 @@ gclFlushSocket(strm)
+ static
+ object
+-make_socket_stream(fd,mode,server,host,port,async)
+-int fd;
+-enum gcl_sm_flags mode;
+-object server;
+-object host;
+-object port;
+-object async;
+-{
++make_socket_stream(int fd,enum gcl_sm_flags mode,object server,object host,object port,object async) {
++
+   object x;
+   if (fd < 0 )
+    {
+--- gcl27-2.7.1.orig/o/format.c
++++ gcl27-2.7.1/o/format.c
+@@ -52,7 +52,7 @@ static void
+ fmt_semicolon(bool,bool);
+ static void
+-fmt_up_and_out(bool,bool);
++fmt_up_and_out(int,bool);
+ static void
+ fmt_justification(volatile bool,bool);
+@@ -347,7 +347,8 @@ format(object fmt_stream0, int ctl_origi
+ {
+       int c, n;
+       fixnum i,j,sn;
+-      bool colon, atsign;
++      int colon;
++      bool atsign;
+       object x;
+       fmt_paramp = fmt_param;
+@@ -2640,7 +2641,7 @@ fmt_justification(volatile bool colon, b
+ static void
+-fmt_up_and_out(bool colon, bool atsign)
++fmt_up_and_out(int colon, bool atsign)
+ {
+   fixnum j,n;
+   object x[3];
+@@ -2720,7 +2721,8 @@ DEFUN("FORMAT",object,fLformat,LISP,2,F_
+   va_list ap; 
+   VOL object x = OBJNULL;
+   jmp_buf fmt_jmp_buf0;
+-  bool colon, e;
++  int colon;
++  bool e;
+   VOL fixnum nargs=INIT_NARGS(2);
+   
+   fmt_old;
+--- gcl27-2.7.1.orig/o/funlink.c
++++ gcl27-2.7.1/o/funlink.c
+@@ -225,8 +225,6 @@ clean_link_array(object *ar, object *ar_
+   return(i*sizeof(object *));
+ }
+-#include "apply_n.h"    
+-
+ DEFVAR("*FAST-LINK-WARNINGS*",sSAfast_link_warningsA,SI,Cnil,"");
+ #include "pbits.h"
+@@ -242,15 +240,14 @@ typedef union {
+   fw f;
+ } fu;
++
+ object
+-call_proc_new(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object first,va_list ll) {
++call_proc_new23(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object *x) {
+   object fun;
+   enum type tp;
+   ufixnum margs,nargs,fas,do_link,varg,pushed=0,nfargs;
+   fixnum vald;
+-  object *tmp,*x/* ,*p */;
+-  int i;
+   fu u;
+   if (type_of(sym)==t_symbol) {
+@@ -262,7 +259,7 @@ call_proc_new(object sym,ufixnum clp,ufi
+   tp=type_of(fun);
+   u.i=vld;
+-  
++
+   /* p=0; */
+   if (u.f.pu) {
+     u.f.ma=vs_top-vs_base;
+@@ -270,22 +267,12 @@ call_proc_new(object sym,ufixnum clp,ufi
+     /* p=vs_base; */
+     pushed=1;
+   }
+-  
++
+   margs=u.f.ma;
+   varg=u.f.va;
+   nargs=u.f.va ? abs(VFUN_NARGS) : margs;
+   nfargs=u.f.va && VFUN_NARGS<0 ? nargs-1 : nargs;
+   vald=!u.f.vv ? -(fixnum)u.f.nv : u.f.nv;
+-  
+-  x=tmp=(u.f.pu && !fun->fun.fun_argd && VFUN_NARGS>=fun->fun.fun_minarg) ? 
+-    vs_base : ZALLOCA(nargs*sizeof(object));
+-  
+-  if (tmp!=vs_base) {
+-    if (u.f.pu) 
+-      memcpy(tmp,vs_base,nargs*sizeof(*tmp));
+-    else for (i=0;i<nargs;i++)
+-         *x++=(i || u.f.nf) ? va_arg(ll,object) : first;
+-  }
+   /*FIXME: Problem here relying on VFUN_NARGS or fcall.fun or FUN_VALP might foil sharing these links in different contexts*/
+   /*links currently shared by rt at clp apnarg, so VFUN_NARGS<0 is safe*/
+@@ -341,7 +328,7 @@ call_proc_new(object sym,ufixnum clp,ufi
+   }
+   if (sSAprofilingA->s.s_dbind!=Cnil)
+-    sSin_call->s.s_gfdef->fun.fun_self(sym);
++    ((object (*)(object))sSin_call->s.s_gfdef->fun.fun_self)(sym);
+   if (fas) {
+@@ -352,12 +339,12 @@ call_proc_new(object sym,ufixnum clp,ufi
+     }
+     if (sSAprofilingA->s.s_dbind!=Cnil)
+-      sSout_call->s.s_gfdef->fun.fun_self(fSgettimeofday());
+-    
+-    return(c_apply_n_fun(fun,x-tmp,tmp));
++      ((object (*)(object))sSout_call->s.s_gfdef->fun.fun_self)(fSgettimeofday());
++
++    return(quick_call_function_vec(fun,nargs,x));
+   } else {
+-    
++
+     object res;
+     register object *base,*old_top;
+     enum ftype result_type;
+@@ -370,17 +357,17 @@ call_proc_new(object sym,ufixnum clp,ufi
+     if (vald || u.f.vv) larg=(fixnum)fcall.valp;
+     if (!pushed) {
+-      
++
+       object y;
+-      
++
+       vs_base=vs_top; /*???*/
+       for (i=0;i<nargs;i++) {
+-      
++
+       enum ftype typ;
+-      y=tmp[i];
+-      
++      y=x[i];
++
+       switch((typ=POP_BITS(argd,2))) {
+       case f_fixnum:
+         y=make_fixnum((fixnum)y);
+@@ -388,15 +375,15 @@ call_proc_new(object sym,ufixnum clp,ufi
+       default:
+         break;
+       }
+-      
++
+       vs_push(y);
+-      
++
+       }
+       if (u.f.va && VFUN_NARGS<0)
+       for (y=*--vs_top;y!=Cnil;y=y->c.c_cdr)
+         vs_push(y->c.c_car);
+-      
++
+       vs_check;
+     }
+@@ -404,7 +391,7 @@ call_proc_new(object sym,ufixnum clp,ufi
+     base=vs_base;
+     old_top=vs_top;
+     funcall(fun);
+-    
++
+     res=vs_base[0];
+     if (larg) {
+       object *tmp=vs_base+1,*tl=(void *)larg,*tle=tl+labs(vald);/*FIXME avoid if pushed*/
+@@ -418,7 +405,7 @@ call_proc_new(object sym,ufixnum clp,ufi
+       vs_top=base;
+     for (;--old_top>=vs_top && vs_top>=vs_org;) *old_top=Cnil;
+-    
++
+     switch(result_type) {
+     case f_fixnum:
+       res=(object)fix(res);
+@@ -426,49 +413,29 @@ call_proc_new(object sym,ufixnum clp,ufi
+     default:
+       break;
+     }
+-    
++
+     if (sSAprofilingA->s.s_dbind!=Cnil)
+-      sSout_call->s.s_gfdef->fun.fun_self(fSgettimeofday());
++      ((object (*)(object))sSout_call->s.s_gfdef->fun.fun_self)(fSgettimeofday());
+     return res;
+-    
++
+   }
+ }
+-object
+-call_proc_new_nval(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object first,...) {
+-  object x;
+-  va_list b;
+-  va_start(b,first);
+-  x=call_proc_new(sym,clp,vld,link,argd,first,b);
+-  va_end(b);
+-  return x;
+-}
+-
+-object
+-call_proc_cs1(object fun,...) {
+-  register object res;
+-  ufixnum vald;
+-  va_list ap;
+-  va_start(ap,fun);
+-  vald=((31<<12)|(1<<17)|(1<<18)|(1<<20));
+-  res=call_proc_new(fun,1,vald,0,0,0,ap);
+-  va_end(ap);
+-  return res;
+-}
+-
+ object
+ call_proc_cs2(object first,...) {
+-  register object res;
+-  ufixnum vald;
++
++  int i,nargs=abs(VFUN_NARGS);
++  object *x=alloca(nargs*sizeof(*x));
+   va_list ap;
+-  object fun=fcall.fun;
++
+   va_start(ap,first);
+-  vald=((31<<12)|(1<<17)|(1<<18));
+-  res=call_proc_new(fun,1,vald,0,0,first,ap);
++  for (i=0;i<nargs;i++) x[i]=i ? va_arg(ap,object) : first;
+   va_end(ap);
+-  return res;
++
++  return call_proc_new23(fcall.fun,1,((31<<12)|(1<<17)|(1<<18)),0,0,x);
++
+ }
+--- gcl27-2.7.1.orig/o/gmp_big.c
++++ gcl27-2.7.1/o/gmp_big.c
+@@ -526,16 +526,16 @@ integer_quotient_remainder_1(object x, o
+     if (qp) {
+       if (rp) {
+-      void (*f)()=d<0 ? mpz_fdiv_qr : (d>0 ? mpz_cdiv_qr : mpz_tdiv_qr);
++      void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_qr : (d>0 ? mpz_cdiv_qr : mpz_tdiv_qr);
+       f(MP(big_fixnum3),MP(big_fixnum4),b1,b2);
+       *rp=maybe_replace_big(big_fixnum4);
+       } else {
+-      void (*f)()=d<0 ? mpz_fdiv_q : (d>0 ? mpz_cdiv_q : mpz_tdiv_q);
++      void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_q : (d>0 ? mpz_cdiv_q : mpz_tdiv_q);
+       f(MP(big_fixnum3),b1,b2);
+       }
+       *qp=maybe_replace_big(big_fixnum3);
+     } else if (rp) {
+-      void (*f)()=d<0 ? mpz_fdiv_r : (d>0 ? mpz_cdiv_r : mpz_tdiv_r);
++      void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_r : (d>0 ? mpz_cdiv_r : mpz_tdiv_r);
+       f(MP(big_fixnum4),b1,b2);
+       *rp=maybe_replace_big(big_fixnum4);
+     }
+--- gcl27-2.7.1.orig/o/list.d
++++ gcl27-2.7.1/o/list.d
+@@ -32,9 +32,8 @@ Foundation, 675 Mass Ave, Cambridge, MA
+ object
+-car(x)
+-object x;
+-{
++car(object x) {
++
+       if (x == Cnil)
+               return(x);
+       if (consp(x))
+@@ -44,9 +43,8 @@ object x;
+ }
+ object
+-cdr(x)
+-object x;
+-{
++cdr(object x) {
++
+       if (x == Cnil)
+               return(x);
+       if (consp(x))
+@@ -192,9 +190,8 @@ append(object x, object y) {
+ }
+ object
+-copy_list(x)
+-object x;
+-{
++copy_list(object x) {
++
+       object y;
+       if (!consp(x))
+@@ -277,10 +274,10 @@ stack_list(void) {
+ }
+  
+-object on_stack_make_list(n)
+-int n;
+-{ object res=(object) alloca_val;
+- struct cons *p = (struct cons *)res;
++object on_stack_make_list(int n) {
++
++  object res=(object) alloca_val;
++  struct cons *p = (struct cons *)res;
+  if (n<=0) return Cnil;
+   TOP:
+ #ifdef WIDE_CONS
+@@ -315,9 +312,8 @@ DEFUN("RPLACD",object,fLrplacd,LISP,2,2,
+  
+ void
+-check_proper_list(alist)
+-object alist;
+-{
++check_proper_list(object alist) {
++
+     object v;
+     /*
+     if (alist == Cnil)
+@@ -336,9 +332,7 @@ DEFUN("PROPER-LISTP",object,fSproper_lis
+ bool
+-member_eq(x, l)
+-object x, l;
+-{
++member_eq(object x,object l) {
+       for (;  consp(l);  l = l->c.c_cdr)
+               if (x == l->c.c_car)
+@@ -347,9 +341,8 @@ object x, l;
+ }
+ void
+-delete_eq(x, lp)
+-object x, *lp;
+-{
++delete_eq(object x,object *lp) {
++
+       for (;  consp(*lp);  lp = &(*lp)->c.c_cdr)
+               if ((*lp)->c.c_car == x) {
+                       *lp = (*lp)->c.c_cdr;
+--- gcl27-2.7.1.orig/o/main.c
++++ gcl27-2.7.1/o/main.c
+@@ -76,7 +76,7 @@ char stderr_buf[BUFSIZ + EXTRA_BUFSIZE];
+ #include "stacks.h"
+ int debug;                    /* debug switch */
+-int raw_image = TRUE;         /* raw or saved image -- CYGWIN will only place this in .data and not in .bss if initialized to non-zero */
++bool raw_image = TRUE;                /* raw or saved image -- CYGWIN will only place this in .data and not in .bss if initialized to non-zero */
+ bool GBC_enable=FALSE;
+ long real_maxpage;
+@@ -1434,7 +1434,7 @@ my_fprintf(void *v,const char *f,...) {
+ #ifdef HAVE_FPRINTF_STYLED_FTYPE
+ static int
+-my_fprintf_styled(void *v,enum disassembler_style,const char *f,...) {
++my_fprintf_styled(void *v,enum disassembler_style s,const char *f,...) {
+   va_list va;
+   int r;
+   va_start(va,f);
+@@ -1463,25 +1463,24 @@ DEFUN("DISASSEMBLE-INSTRUCTION",object,f
+ #if defined(HAVE_DIS_ASM_H) && defined(OUTPUT_ARCH)
+   static disassemble_info i;
+-  void *v;
+-  void * (*s)();
++  void *v,*s;
+   fixnum j,j1,k;
+   object x;
+   if ((v=dlopen("libopcodes.so",RTLD_NOW))) {
+     if ((s=dlsym(v,"init_disassemble_info"))) {
+-      s(&i, stdout,(fprintf_ftype)my_fprintf
+ #ifdef HAVE_FPRINTF_STYLED_FTYPE
+-      ,my_fprintf_styled
++      ((void * (*)(disassemble_info *,FILE *,fprintf_ftype,fprintf_styled_ftype))s)(&i,stdout,my_fprintf,my_fprintf_styled);
++#else
++      ((void * (*)(disassemble_info *,FILE *,fprintf_ftype))s)(&i,stdout,my_fprintf);
+ #endif
+-      );
+       i.read_memory_func=my_read;
+       i.print_address_func=my_pa;
+ #if defined(OUTPUT_MACH)
+       i.mach=OUTPUT_MACH;
+ #endif
+       if ((s=dlsym(v,"disassembler"))) {
+-      disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,0,0,NULL);
++      disassembler_ftype disasm=((disassembler_ftype (*)(int,int,int,void *))s)(OUTPUT_ARCH,0,0,NULL);
+       bp=b;
+       disasm(addr,&i);
+       my_fprintf(NULL," ;");
+--- gcl27-2.7.1.orig/o/package.d
++++ gcl27-2.7.1/o/package.d
+@@ -39,9 +39,8 @@ void check_type_or_symbol_string_package
+ static bool
+-member_string_eq(x, l)
+-object x, l;
+-{
++member_string_eq(object x,object l) {
++
+       for (;  consp(l);  l = l->c.c_cdr)
+               if (string_eq(x, l->c.c_car))
+                       return(TRUE);
+@@ -126,10 +125,7 @@ suitable_package_size(ufixnum n)
+       or package names i.e. strings or symbols.
+ */
+ static object
+-make_package(n, ns, ul,isize,esize)
+-object n, ns, ul;
+-int isize,esize;
+-{
++make_package(object n,object ns,object ul,int isize,int esize) {
+       object x, y;
+       int i;
+@@ -199,10 +195,7 @@ static void
+ use_package(object,object);
+ static object
+-in_package(n, ns, ul,isize,esize)
+-object n, ns, ul;
+-int isize,esize;
+-{
++in_package(object n,object ns,object ul,int isize,int esize) {
+       object x, y;
+       vs_mark;
+@@ -237,9 +230,7 @@ L:
+ }
+ static object
+-rename_package(x, n, ns)
+-object x, n, ns;
+-{
++rename_package(object x,object n,object ns) {
+       object y;
+       vs_mark;
+@@ -278,9 +269,8 @@ object x, n, ns;
+       If not so, an error is signaled.
+ */
+ object
+-find_package(n)
+-object n;
+-{
++find_package(object n) {
++
+       struct package *p;
+       check_package_designator(n);
+@@ -291,9 +281,8 @@ object n;
+ }
+ static object
+-coerce_to_package(p)
+-object p;
+-{
++coerce_to_package(object p) {
++
+       object pp;
+       if (type_of(p) == t_package)
+@@ -327,9 +316,9 @@ current_package()
+ */
+ int
+-pack_hash(x)
+-object x;
+-{unsigned int h=0;
++pack_hash(object x) {
++
++  unsigned int h=0;
+   x=coerce_to_string(x);
+   {int len=VLEN(x);
+   char *s;
+@@ -393,9 +382,8 @@ DEFUN("PACKAGE-EXTERNAL_SIZE",object,fSp
+       Intern(st, p) interns string st in package p.
+ */
+ object
+-intern(st, p)
+-object st, p;
+-{
++intern(object st,object p) {
++
+       int j;
+       object x, *ip, *ep, l, ul;
+       vs_mark;
+@@ -450,9 +438,8 @@ object st, p;
+       Find_symbol(st, p) searches for string st in package p.
+ */
+ object
+-find_symbol(st, p)
+-object st, p;
+-{
++find_symbol(object st,object p) {
++
+       int j;
+       object *ip, *ep, l, ul;
+       {BEGIN_NO_INTERRUPT;
+@@ -483,9 +470,8 @@ object st, p;
+ }}
+ static bool
+-unintern(s, p)
+-object s, p;
+-{
++unintern(object s,object p) {
++
+       object x, y, l, *lp;
+       int j;
+       {BEGIN_NO_INTERRUPT;
+@@ -533,9 +519,8 @@ UNINTERN:
+ }}
+ void
+-export(s, p)
+-object s, p;
+-{
++export(object s,object p) {
++
+       object x;
+       int j;
+       object *ep, *ip, l;
+@@ -578,9 +563,8 @@ BEGIN:
+ }
+ static void
+-unexport(s, p)
+-object s, p;
+-{
++unexport(object s,object p) {
++
+       object x, *ep, *ip;
+       int j;
+@@ -609,9 +593,8 @@ object s, p;
+ }
+ void
+-import(s, p)
+-object s, p;
+-{
++import(object s,object p) {
++
+       object x;
+       int j;
+       object *ip;
+@@ -635,9 +618,8 @@ object s, p;
+ }
+ static void
+-shadowing_import(s, p)
+-object s, p;
+-{
++shadowing_import(object s,object p) {
++
+       object x, *ip;
+       x=find_symbol(s, p);
+@@ -668,9 +650,8 @@ object s, p;
+ }
+ static void
+-shadow(s, p)
+-object s, p;
+-{
++shadow(object s,object p) {
++
+       int j;
+       object *ip,x;
+@@ -692,9 +673,8 @@ object s, p;
+ }
+ static void
+-use_package(x0, p)
+-object x0, p;
+-{
++use_package(object x0,object p) {
++
+       object x = x0;
+       int i;
+       object y, l;
+@@ -735,9 +715,8 @@ object x0, p;
+ }
+ static void
+-unuse_package(x0, p)
+-object x0, p;
+-{
++unuse_package(object x0,object p) {
++
+       object x = x0;
+  BEGIN:
+--- /dev/null
++++ gcl27-2.7.1/o/pre_qfv.c
+@@ -0,0 +1,98 @@
++#include "include.h"
++#include "arth.h"
++
++#define EMPTY()
++#define DEFER(id) id EMPTY()
++
++#define EVAL(...)     EVAL64(__VA_ARGS__)
++#define EVAL64(...)   EVAL32(EVAL32(__VA_ARGS__))
++#define EVAL32(...)   EVAL16(EVAL16(__VA_ARGS__))
++#define EVAL16(...)   EVAL8(EVAL8(__VA_ARGS__))
++#define EVAL8(...)    EVAL4(EVAL4(__VA_ARGS__))
++#define EVAL4(...)    EVAL2(EVAL2(__VA_ARGS__))
++#define EVAL2(...)    EVAL1(EVAL1(__VA_ARGS__))
++#define EVAL1(...)    __VA_ARGS__
++
++#define minus(a,b) M_ ## a ## _ ## b
++#define MINUS(a,b) minus(a,b)
++#define DEC(n) MINUS(n,1)
++
++#define SECOND(a, b, ...) b
++#define IS_ONE_PROXY(...) SECOND(__VA_ARGS__)
++#define IS_ONE_1 ~, 1
++#define IS_ONE_CHECK(n) IS_ONE_PROXY(Mjoin(IS_ONE_, n), 0)
++
++#define GCNT_0(P,n,m) , DEFER(GCNT_ID)()(P,n,m)
++#define GCNT_1(P,n,m) 
++#define GCNT_ID() GCNT
++
++#define GCNT(P,n,m) P(n,m) Mjoin(GCNT_,IS_ONE_CHECK(n))(P,DEC(n),m)
++#define PPP1(n,m) object
++#define PPP2(n,m) x[MINUS(m,n)]
++#define CSTCL(m,n) case n*(MAX_ARGS+1)+m: return ((object (*)(GCNT(PPP1,m,m),...))f)(GCNT(PPP2,n,n));
++
++#define OGCNT_0(P,n,m) DEFER(OGCNT_ID)()(P,n,m)
++#define OGCNT_1(P,n,m) 
++#define OGCNT_ID() OGCNT
++
++#define OGCNT(P,n,m) P(n,m) Mjoin(OGCNT_,IS_ONE_CHECK(n))(P,DEC(n),m)
++#define OWLK(m,n) OGCNT(CSTCL,m,m)
++
++#define PGCNT_0(P,n,m) DEFER(PGCNT_ID)()(P,n,m)
++#define PGCNT_1(P,n,m) 
++#define PGCNT_ID() PGCNT
++
++#define PGCNT(P,n,m) P(n,m) Mjoin(PGCNT_,IS_ONE_CHECK(n))(P,DEC(n),m)
++#define IPGCNT(P,n) PGCNT(P,n,n)
++
++ufixnum maxargs_for_awk=MAX_ARGS;
++
++static inline object
++vc_apply_n(void *f, int n, object *x) {
++
++
++  switch (n) {
++
++    case 0*(MAX_ARGS+1)+1: return ((object (*)(object ,...))f)(OBJNULL);
++
++    /*    EVAL(IPGCNT(OWLK,MAX_ARGS)) Too much memory on 32bit systems*/
++    awk_generated_vc_apply_n_lines;
++
++    default: FEerror("vc bar ~s",1,make_fixnum(n));
++
++  }
++
++}
++
++#define RCSTCL(m,n) case m: return ((object (*)(GCNT(PPP1,m,m)))f)(GCNT(PPP2,m,m));
++#define PWLK(m,n) RCSTCL(m,m)
++
++static inline object
++rc_apply_n(void *f, int n, object *x) {
++
++  switch (n) {
++
++    /* EVAL(IPGCNT(PWLK,MAX_ARGS)) Too much memory on 32bit systems*/
++    awk_generated_rc_apply_n_lines;
++
++    default: FEerror("rc bar ~s",1,make_fixnum(n));
++
++  }
++
++}
++
++static inline object
++c_apply_n_fun(object fun,int n,object *b) {
++
++  return fun->fun.fun_minarg<fun->fun.fun_maxarg ?
++    vc_apply_n(fun->fun.fun_self,n*(MAX_ARGS+1)+(fun->fun.fun_minarg ? fun->fun.fun_minarg : 1),b) :
++    rc_apply_n(fun->fun.fun_self,n,b);
++
++}
++
++object
++quick_call_function_vec(object fun,ufixnum n,object *b) {
++
++  return c_apply_n_fun(fun,n,b);
++
++}
+--- gcl27-2.7.1.orig/o/print.d
++++ gcl27-2.7.1/o/print.d
+@@ -156,9 +156,8 @@ static void
+ write_decimal1(int);
+ static void
+-write_decimal(i)
+-int i;
+-{
++write_decimal(int i) {
++
+       if (i == 0) {
+               write_ch('0');
+               return;
+@@ -623,17 +622,15 @@ writec_queue(int c,void *v) {
+ void
+-write_str(s)
+-char *s;
+-{
++write_str(char *s) {
++
+       while (*s != '\0')
+               write_ch(*s++);
+ }
+ static void
+-write_decimal1(i)
+-int i;
+-{
++write_decimal1(int i) {
++
+       if (i == 0)
+               return;
+       write_decimal1(i/10);
+@@ -641,9 +638,8 @@ int i;
+ }
+ static void
+-write_addr(x)
+-object x;
+-{
++write_addr(object x) {
++
+       long i;
+       int j, k;
+@@ -799,11 +795,8 @@ write_unreadable_str(object x,char *str)
+ }
+ static void
+-write_double(d, e, shortp)
+-double d;
+-int e;
+-bool shortp;
+-{
++write_double(double d,int e,bool shortp) {
++
+       int sign;
+       char buff[FPRC+5];
+       int exp;
+@@ -1847,10 +1840,8 @@ travel_find_sharing(object x,object tabl
+ }
+ static bool
+-potential_number_p(strng, base)
+-object strng;
+-int base;
+-{
++potential_number_p(object strng,int base) {
++
+       int i, l, c, dc;
+       char *s;
+--- gcl27-2.7.1.orig/o/read.d
++++ gcl27-2.7.1/o/read.d
+@@ -261,9 +261,8 @@ setup_READ()
+ }
+ object
+-read_char(in)
+-object in;
+-{
++read_char(object in) {
++
+       return(code_char(readc_stream(in)));
+ }
+@@ -286,9 +285,8 @@ read_char_no_echo(object in) {
+ #define       read_char(in)   code_char(readc_stream(in))
+ static void
+-unread_char(c, in)
+-object c, in;
+-{
++unread_char(object c,object in) {
++
+       if (type_of(c) != t_character)
+               FEwrong_type_argument(sLcharacter, c);
+       unreadc_stream(char_code(c), in);
+@@ -299,10 +297,8 @@ object c, in;
+       When pt is TRUE, preceeding whitespaces are ignored.
+ */
+ object
+-peek_char(pt, in)
+-bool pt;
+-object in;
+-{
++peek_char(bool pt,object in) {
++
+       object c;
+       if (pt) {
+@@ -320,9 +316,8 @@ object in;
+               
+ static object
+-read_object_recursive(in)
+-object in;
+-{
++read_object_recursive(object in) {
++
+       VOL object x;
+       bool e;
+@@ -388,9 +383,8 @@ L:
+ object
+-read_object_non_recursive(in)
+-object in;
+-{
++read_object_non_recursive(object in) {
++
+       VOL object x;
+       bool e;
+       object old_READtable;
+@@ -509,9 +503,8 @@ L:
+ */
+ object
+-read_object(in)
+-object in;
+-{
++read_object(object in) {
++
+       object x;
+       object c=Cnil;
+       enum chattrib a;
+@@ -801,10 +794,8 @@ ENDUP:
+       Delim is not included in the string but discarded.
+ */
+ static void
+-read_string(delim, in)
+-int delim;
+-object in;
+-{
++read_string(int delim,object in) {
++
+       int i;
+       object c;
+@@ -828,9 +819,8 @@ object in;
+       and places it in token_buffer.
+ */
+ static void
+-read_constituent(in)
+-object in;
+-{
++read_constituent(object in) {
++
+       int i, j;
+       object c;
+@@ -2159,9 +2149,8 @@ DEFUNM("PARSE-INTEGER-INT",object,fSpars
+ /* } */
+ object
+-read_char1(strm,eof)
+-object strm,eof;
+-{
++read_char1(object strm,object eof) {
++
+   if (strm == Cnil)
+     strm = symbol_value(sLAstandard_inputA);
+   else if (strm == Ct)
+@@ -2340,9 +2329,8 @@ DEFUN("SET-READTABLE-CASE",object,fSset_
+ @)
+ static object
+-string_to_object(x)
+-object x;
+-{
++string_to_object(object x) {
++
+       object in;
+       vs_mark;
+--- gcl27-2.7.1.orig/o/run_process.c
++++ gcl27-2.7.1/o/run_process.c
+@@ -374,10 +374,8 @@ static char *lisp_to_string(object strin
+  * for a service on the same host as the clinet.
+  *
+  */
+-static int open_connection(host,server)
+-char  *host;
+-int   server;
+-{
++static int open_connection(char *host,int server) {
++
+       int res;
+       int pid;
+       int     sock;
+@@ -430,11 +428,8 @@ int       server;
+       return(sock);
+ }
+-object make_stream(host_l,socket,smm)
+-object        host_l;
+-int socket;
+-enum smmode smm;
+-{
++object make_stream(object host_l,int socket,enum smmode smm) {
++
+       char    *mode=NULL;
+       object  stream;
+       FILE    *fp;
+@@ -470,10 +465,8 @@ enum smmode smm;
+ }
+ object
+-make_socket_stream(host_l,port)
+-object        host_l;
+-object        port;
+-{
++make_socket_stream(object host_l,object port) {
++
+       char    *host = lisp_to_string(host_l);
+       object  stream_in;
+       object  stream_out;
+@@ -574,8 +567,6 @@ spawn_process_with_streams(object istrea
+     close(fileno(istream->sm.sm_fp));
+     close(fileno(ostream->sm.sm_fp));
+-    emsg("\n***** Spawning process %s ", pname);
+-
+     errno=0;
+     execvp(pname,argv);
+     _exit(128|(errno&0x7f));
+--- gcl27-2.7.1.orig/o/sequence.d
++++ gcl27-2.7.1/o/sequence.d
+@@ -269,9 +269,8 @@ LFD(Lcopy_seq)()
+ }
+ int
+-length(x)
+-object x;
+-{
++length(object x) {
++
+       int i;
+       switch (type_of(x)) {
+@@ -317,9 +316,8 @@ LFD(Lreverse)()
+ }
+ object
+-reverse(seq)
+-object seq;
+-{
++reverse(object seq) {
++
+       object x, y, *v;
+       int i, j, k;
+@@ -430,9 +428,8 @@ LFD(Lnreverse)()
+ }
+ object /*FIXME boot*/
+-nreverse(seq)
+-object seq;
+-{
++nreverse(object seq) {
++
+       object x, y, z;
+       int i, j, k;
+--- gcl27-2.7.1.orig/o/sockets.c
++++ gcl27-2.7.1/o/sockets.c
+@@ -53,9 +53,6 @@ Foundation, 675 Mass Ave, Cambridge, MA
+ #include <errno.h> 
+-static void write_timeout_error();
+-static void connection_failure();
+-
+ #ifdef __MINGW32__
+ /* Keep track of socket initialisations */
+ int w32_socket_initialisations = 0;
+@@ -554,15 +551,13 @@ DEFUN("CLEAR-CONNECTION-STATE",object,fS
+ #endif
+ static void
+-write_timeout_error(s)
+-     char *s;
+-{FEerror("Write timeout: ~s",1,make_simple_string(s));
++write_timeout_error(char *s) {
++  FEerror("Write timeout: ~s",1,make_simple_string(s));
+ }
+ static void
+-connection_failure(s)
+-     char *s;
+-{FEerror("Connect failure: ~s",1,make_simple_string(s));
++connection_failure(char *s) {
++  FEerror("Connect failure: ~s",1,make_simple_string(s));
+ }
+--- gcl27-2.7.1.orig/o/string.d
++++ gcl27-2.7.1/o/string.d
+@@ -82,9 +82,8 @@ alloc_simple_string(fixnum l) {
+       Make_simple_string(s) makes a simple string from C string s.
+ */
+ object
+-make_simple_string(s)
+-const char *s;
+-{
++make_simple_string(const char *s) {
++
+       int l, i;
+       char *p;
+       object x;
+@@ -103,9 +102,8 @@ const char *s;
+ }
+ object
+-make_string(s)
+-char *s;
+-{
++make_string(char *s) {
++
+       int l, i;
+       char *p;
+       object x;
+@@ -128,9 +126,8 @@ char *s;
+       This correponds to string= (just the string equality).
+ */
+ bool
+-string_eq(x, y)
+-object x, y;
+-{
++string_eq(object x,object y) {
++
+       int i, j;
+@@ -151,9 +148,8 @@ object x, y;
+       (string equality ignoring the case).
+ */
+ bool
+-string_equal(x, y)
+-object x, y;
+-{
++string_equal(object x,object y) {
++
+       int i, j;
+       char *p, *q;
+@@ -178,9 +174,8 @@ object x, y;
+       Copy_simple_string(x) copies string x to a simple string.
+ */
+ object
+-copy_simple_string(x)
+-object x;
+-{
++copy_simple_string(object x) {
++
+       object y;
+       int i;
+       vs_mark;
+@@ -205,9 +200,8 @@ object x;
+ }
+ object
+-copy_string(x)
+-object x;
+-{
++copy_string(object x) {
++
+       object y;
+       int i;
+       vs_mark;
+@@ -238,9 +232,8 @@ object x;
+ }
+ object
+-coerce_to_string(x)
+-object x;
+-{
++coerce_to_string(object x) {
++
+       object y;
+       vs_mark;
+@@ -276,10 +269,8 @@ object x;
+ void
+-get_string_start_end(str, start, end, ps, pe)
+-object str, start, end;
+-int *ps, *pe;
+-{
++get_string_start_end(object str,object start,object end,int *ps,int *pe) {
++
+       if (start == Cnil)
+               *ps = 0;
+       else if (type_of(start) != t_fixnum)
+@@ -458,10 +449,7 @@ LFD(Lstring_not_equal)()   { string_sign
+ @)
+ static bool
+-member_char(c, char_bag)
+-int c;
+-object char_bag;
+-{
++member_char(int c,object char_bag) {
+       int i, f;
+@@ -533,27 +521,24 @@ LFD(Lstring_trim)() { left_trim = right_
+ LFD(Lstring_left_trim)() { left_trim = TRUE; right_trim = FALSE; FFN(Lstring_trim0)(); }
+ LFD(Lstring_right_trim)() { left_trim = FALSE; right_trim = TRUE; FFN(Lstring_trim0)();}
+-static int char_upcase(c, bp)
+-int c, *bp;
+-{
++static int char_upcase(int c,int *bp) {
++
+       if (isLower(c))
+               return(c - ('a' - 'A'));
+       else
+               return(c);
+ }
+-static int char_downcase(c, bp)
+-int c, *bp;
+-{
++static int char_downcase(int c,int *bp) {
++
+       if (isUpper(c))
+               return(c + ('a' - 'A'));
+       else
+               return(c);
+ }
+-static int char_capitalize(c, bp)
+-int c, *bp;
+-{
++static int char_capitalize(int c,int *bp) {
++
+       if (isLower(c)) {
+               if (*bp)
+                       c -= 'a' - 'A';
+@@ -571,7 +556,7 @@ int c, *bp;
+ @(static defun string_case (strng &key start end &aux conv)
+       int s=0, e=0, i;
+-      bool b;
++      int b;
+ @
+       strng = coerce_to_string(strng);
+       get_string_start_end(strng, start, end, &s, &e);
+@@ -590,7 +575,7 @@ LFD(Lstring_capitalize)() { casefun = ch
+ @(static defun nstring_case (strng &key start end)
+       int s=0, e=0, i;
+-      bool b;
++      int b;
+ @
+       check_type_string(&strng);
+       get_string_start_end(strng, start, end, &s, &e);
+--- gcl27-2.7.1.orig/o/symbol.d
++++ gcl27-2.7.1/o/symbol.d
+@@ -40,9 +40,8 @@ odd_plist(object);
+ object siSpname;
+ object
+-make_symbol(st)
+-object st;
+-{
++make_symbol(object st) {
++
+       object x;
+       {BEGIN_NO_INTERRUPT;    
+@@ -70,9 +69,8 @@ object st;
+ object
+-make_ordinary(s)
+-char *s;
+-{
++make_ordinary(char *s) {
++
+       int j;
+       object x, l, *ep;
+       vs_mark;
+@@ -96,10 +94,8 @@ char *s;
+       with initial value v in lisp package.
+ */
+ object
+-make_special(s, v)
+-char *s;
+-object v;
+-{
++make_special(char *s,object v) {
++
+       object x;
+       x = make_ordinary(s);
+@@ -113,10 +109,8 @@ object v;
+       with constant value v in lisp package.
+ */
+ object
+-make_constant(s, v)
+-char *s;
+-object v;
+-{
++make_constant(char *s,object v) {
++
+       object x;
+       x = make_ordinary(s);
+@@ -134,9 +128,8 @@ object v;
+ object
+-make_si_ordinary(s)
+-char *s;
+-{
++make_si_ordinary(char *s) {
++
+       int j;
+       object x, l, *ep;
+       vs_mark;
+@@ -161,9 +154,8 @@ char *s;
+ }
+ object
+-make_gmp_ordinary(s)
+-char *s;
+-{
++make_gmp_ordinary(char *s) {
++
+         int i,j;
+       object x, l, *ep;
+       vs_mark;
+@@ -196,10 +188,8 @@ char *s;
+       with initial value v in system package.
+ */
+ object
+-make_si_special(s, v)
+-char *s;
+-object v;
+-{
++make_si_special(char *s,object v) {
++
+       object x;
+       x = make_si_ordinary(s);
+@@ -213,25 +203,23 @@ object v;
+       with constant value v in system package.
+ */
+ object
+-make_si_constant(s, v)
+-char *s;
+-object v;
+-{
++make_si_constant(char *s,object v) {
++
+       object x;
+       x = make_si_ordinary(s);
+       x->s.s_stype = (short)stp_constant;
+       x->s.s_dbind = v;
+       return(x);
++
+ }
+ /*
+       Make_keyword(s) makes a keyword from C string s.
+ */
+ object
+-make_keyword(s)
+-char *s;
+-{
++make_keyword(char *s) {
++
+       int j;
+       object x, l, *ep;
+       vs_mark;
+@@ -254,9 +242,8 @@ char *s;
+ }
+ object
+-symbol_value(s)
+-object s;
+-{
++symbol_value(object s) {
++
+ /*
+       if (type_of(s) != t_symbol)
+               FEinvalid_variable("~S is not a symbol.", s);
+@@ -267,9 +254,7 @@ object s;
+ }
+ object
+-getf(place, indicator, deflt)
+-object place, indicator, deflt;
+-{
++getf(object place,object indicator,object deflt) {
+       object l;
+ #define cendp(obj) ((!consp(obj)))
+@@ -285,9 +270,8 @@ object place, indicator, deflt;
+ }
+ object
+-get(s, p, d)
+-object s, p, d;
+-{
++get(object s,object p,object d) {
++
+       if (type_of(s) != t_symbol)
+               not_a_symbol(s);
+       return(getf(s->s.s_plist, p, d));
+@@ -298,9 +282,8 @@ object s, p, d;
+       and returns the resulting property list.
+ */
+ object
+-putf(p, v, i)
+-object p, v, i;
+-{
++putf(object p,object v,object i) {
++
+       object l;
+       for (l = p;  !cendp(l);  l = l->c.c_cdr->c.c_cdr) {
+@@ -316,9 +299,8 @@ object p, v, i;
+ }
+ object
+-putprop(s, v, p)
+-object s, v, p;
+-{
++putprop(object s,object v,object p) {
++
+       if (type_of(s) != t_symbol)
+               not_a_symbol(s);
+       s->s.s_plist = putf(s->s.s_plist, v, p);
+@@ -350,9 +332,8 @@ fSsputprop(object x,object y,object z) {
+               FALSE   otherwise.
+ */
+ bool
+-remf(p, i)
+-object *p, i;
+-{
++remf(object *p,object i) {
++
+       object l0 = *p;
+       for(;  !endp(*p);  p = &(*p)->c.c_cdr->c.c_cdr) {
+@@ -367,9 +348,8 @@ object *p, i;
+ }
+ object
+-remprop(s, p)
+-object s, p;
+-{
++remprop(object s,object p) {
++
+       if (type_of(s) != t_symbol)
+               not_a_symbol(s);
+       if (remf(&s->s.s_plist, p))
+@@ -379,9 +359,8 @@ object s, p;
+ }
+ bool
+-keywordp(s)
+-object s;
+-{
++keywordp(object s) {
++
+       return(type_of(s) == t_symbol && s->s.s_hpack == keyword_package);
+ /*
+       if (type_of(s) != t_symbol) {
+@@ -445,11 +424,11 @@ DEFUN("SYMBOL-STRING",object,fSsymbol_st
+ object
+-symbol_name(x)
+-object x;
+-{
++symbol_name(object x) {
++
+  if (type_of(x)!=t_symbol) FEwrong_type_argument(sLsymbol,x);
+  return(x->s.s_name);
++
+ }
+ DEFUN("SYMBOL-NAME",object,fLsymbol_name,LISP,1,1,NONE,OO,OO,OO,OO,(object sym),"") {
+@@ -674,9 +653,7 @@ LFD(siLputprop)()
+ static void
+-odd_plist(place)
+-object place;
+-{
++odd_plist(object place) {
+       FEerror("The length of the property-list ~S is odd.", 1, place);
+ }
+--- gcl27-2.7.1.orig/o/toplevel.c
++++ gcl27-2.7.1/o/toplevel.c
+@@ -188,8 +188,7 @@ FFN(Fload_time_value)(object arg)
+ }
+-static void
+-FFN(Fdeclare)(object arg)
++LFD(Fdeclare)(void)
+ {
+       FEerror("DECLARE appeared in an invalid position.", 0);
+ }
+--- gcl27-2.7.1.orig/o/unexelf.c
++++ gcl27-2.7.1/o/unexelf.c
+@@ -583,9 +583,8 @@ typedef unsigned char byte;
+ /* Round X up to a multiple of Y.  */
+ static ElfW(Addr)
+-round_up (x, y)
+-     ElfW(Addr) x, y;
+-{
++round_up (ElfW(Addr) x,ElfW(Addr) y) {
++
+   int rem = x % y;
+   if (rem == 0)
+     return x;
+--- gcl27-2.7.1.orig/o/usig.c
++++ gcl27-2.7.1/o/usig.c
+@@ -47,11 +47,10 @@ Foundation, 675 Mass Ave, Cambridge, MA
+ extern char signals_handled[];
+-void
+-main_signal_handler(int,siginfo_t,void *);
++extern handler_function_type main_signal_handler;
+ void
+-gcl_signal(int signo, void (*handler) (/* ??? */))
++gcl_signal(int signo, void (*handler)(int,long,void *,char *))
+ {
+   char *p = signals_handled;
+   while (*p)
+@@ -66,7 +65,7 @@ gcl_signal(int signo, void (*handler) (/
+   
+ #ifdef HAVE_SIGACTION
+     struct sigaction action;
+-    action.sa_sigaction = handler;
++    action.sa_sigaction = (void *)handler;
+ /*    action.sa_flags =  SA_RESTART | ((signo == SIGSEGV || signo == SIGBUS) ? SV_ONSTACK : 0) */
+    action.sa_flags = SA_RESTART | ((signo == SIGSEGV || signo == SIGBUS) ? SA_ONSTACK : 0)  
+ #ifdef SA_SIGINFO
+@@ -178,7 +177,7 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable
+ DEFUN("FEDISABLEEXCEPT",object,fSfedisableexcept,SI,0,0,NONE,IO,OO,OO,OO,(void),"") {
+-  fixnum x;
++  fixnum x=0;
+ #ifdef HAVE_FEENABLEEXCEPT
+@@ -228,8 +227,9 @@ DEFUN("STMXCSR",object,fSstmxcsr,SI,0,0,
+ static void
+-sigfpe3(int sig,siginfo_t *i,void *v) {
++sigfpe3(int sig,long li,void *v,char *c) {
++  siginfo_t *i=(void *)li;
+   unblock_signals(SIGFPE,SIGFPE);
+ #ifdef __MINGW32__
+   gcl_signal(SIGFPE,sigfpe3);
+@@ -255,7 +255,7 @@ DEFCONST("+FE-LIST+",sSPfe_listP,SI,list
+ DEF_ORDINARY("FLOATING-POINT-ERROR",sSfloating_point_error,SI,"");
+ static void
+-sigpipe(int s,siginfo_t *a,void *b)
++sigpipe(int s,long la,void *b,char *c)
+ {
+   unblock_signals(SIGPIPE,SIGPIPE);
+   perror("");
+@@ -263,14 +263,14 @@ sigpipe(int s,siginfo_t *a,void *b)
+ }
+ void
+-sigint(int s,siginfo_t *a,void *b)
++sigint(int s,long la,void *b,char *c)
+ {
+   unblock_signals(SIGINT,SIGINT);
+   terminal_interrupt(1);
+ }
+ static void
+-sigalrm(int s,siginfo_t *a,void *b)
++sigalrm(int s,long a,void *b,char *c)
+ {
+   unblock_signals(SIGALRM,SIGALRM);
+   raise_pending_signals(sig_try_to_delay);
+@@ -282,7 +282,7 @@ DEF_ORDINARY("SIGUSR1-INTERRUPT",sSsigus
+ DEF_ORDINARY("SIGIO-INTERRUPT",sSsigio_interrupt,SI,"");
+ static void
+-sigusr1(int s,siginfo_t *a,void *b) {
++sigusr1(int s,long a,void *b,char *c) {
+   unblock_signals(SIGUSR1,SIGUSR1);
+   ifuncall1(sSsigusr1_interrupt,Cnil);
+@@ -290,12 +290,12 @@ sigusr1(int s,siginfo_t *a,void *b) {
+ }
+ static void
+-sigio(int s,siginfo_t *a,void *b)
++sigio(int s,long a,void *b,char *c)
+ {ifuncall1(sSsigio_interrupt,Cnil);}
+ static void
+-sigterm(int s,siginfo_t *a,void *b)
++sigterm(int s,long la,void *b,char *c)
+ {do_gcl_abort();}
+--- gcl27-2.7.1.orig/o/usig2.c
++++ gcl27-2.7.1/o/usig2.c
+@@ -167,7 +167,7 @@ only in very SAFE places.")
+      
+ void
+-main_signal_handler(int signo,siginfo_t *a,void *b)
++main_signal_handler(int signo,long a,void *b,char *c)
+ {  int allowed = signals_allowed;
+ #ifdef NEED_TO_REINSTALL_SIGNALS
+        signal(signo,main_signal_handler);
+@@ -201,7 +201,7 @@ invoke_handler(int signo, int allowed)
+  {int prev_in_handler = in_signal_handler;
+   in_signal_handler |= (allowed <= sig_normal ? 1 : 0);
+   signals_allowed = allowed;
+-  our_signal_handler[signo](signo,0,0);
++  our_signal_handler[signo](signo,0,0,0);
+   signals_allowed = 0;
+   in_signal_handler = prev_in_handler;
+   after_interrupt(&buf,allowed); 
+--- gcl27-2.7.1.orig/texinfo.tex
++++ gcl27-2.7.1/texinfo.tex
+@@ -1,11 +1,11 @@
+ % texinfo.tex -- TeX macros to handle Texinfo files.
+-%
++% 
+ % Load plain if necessary, i.e., if running under initex.
+ \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+ %
+-\def\texinfoversion{2024-02-10.22}
++\def\texinfoversion{2025-10-25.20}
+ %
+-% Copyright 1985, 1986, 1988, 1990-2024 Free Software Foundation, Inc.
++% Copyright 1985, 1986, 1988, 1990-2025 Free Software Foundation, Inc.
+ %
+ % This texinfo.tex file is free software: you can redistribute it and/or
+ % modify it under the terms of the GNU General Public License as
+@@ -156,8 +156,9 @@
+ % Give the space character the catcode for a space.
+ \def\spaceisspace{\catcode`\ =10\relax}
+-% Likewise for ^^M, the end of line character.
+-\def\endlineisspace{\catcode13=10\relax}
++% Used to ignore an active newline that may appear immediately after
++% a macro name.
++{\catcode13=\active \gdef\ignoreactivenewline{\let^^M\empty}}
+ \chardef\dashChar  = `\-
+ \chardef\slashChar = `\/
+@@ -212,7 +213,7 @@
+ % @errormsg{MSG}.  Do the index-like expansions on MSG, but if things
+ % aren't perfect, it's not the end of the world, being an error message,
+ % after all.
+-%
++% 
+ \def\errormsg{\begingroup \indexnofonts \doerrormsg}
+ \def\doerrormsg#1{\errmessage{#1}}
+@@ -286,7 +287,6 @@
+ % Avoid "undefined control sequence" errors.
+ \def\currentchapterdefs{}
+ \def\currentsectiondefs{}
+-\def\currentsection{}
+ \def\prevchapterdefs{}
+ \def\prevsectiondefs{}
+ \def\currentcolordefs{}
+@@ -425,7 +425,7 @@
+   }%
+ }
+-% First remove any @comment, then any @c comment.  Pass the result on to
++% First remove any @comment, then any @c comment.  Pass the result on to 
+ % \argremovespace.
+ \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+ \def\argremovec#1\c#2\ArgTerm{\argremovespace#1$ $\ArgTerm}
+@@ -483,8 +483,8 @@
+ %   \envdef\foo{...}
+ %   \def\Efoo{...}
+ %
+-% It's the responsibility of \envdef to insert \begingroup before the
+-% actual body; @end closes the group after calling \Efoo.  \envdef also
++% \envdef inserts \begingroup before the actual body; @end calls
++% \Efoo then closes the group with \endgroup.  \envdef also
+ % defines \thisenv, so the current environment is known; @end checks
+ % whether the environment name matches.  The \checkenv macro can also be
+ % used to check whether the current environment is the one expected.
+@@ -951,8 +951,16 @@ where each line of input produces a line
+ \let\setfilename=\comment
+ % @bye.
+-\outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend}
+-
++\outer\def\bye{%
++  \chappager\pagelabels
++  % possibly set in \printindex
++  \ifx\byeerror\relax\else\errmessage{\byeerror}\fi
++  \tracingstats=1\ptexend}
++
++% set in \donoderef below, but we need to define this here so that
++% conditionals balance inside the large \ifpdf ... \fi blocks below.
++\newif\ifnodeseen
++\nodeseenfalse
+ \message{pdf,}
+ % adobe `portable' document format
+@@ -971,15 +979,52 @@ where each line of input produces a line
+ \newif\ifpdf
+ \newif\ifpdfmakepagedest
++% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
++% can be set).  So we test for \relax and 0 as well as being undefined.
++\ifx\pdfoutput\thisisundefined
++\else
++  \ifx\pdfoutput\relax
++  \else
++    \ifcase\pdfoutput
++    \else
++      \pdftrue
++    \fi
++  \fi
++\fi
++
++\newif\ifxetex
++\ifx\XeTeXrevision\thisisundefined\else
++  \xetextrue
++\fi
++
++\newif\ifluatex
++\ifx\luatexversion\thisisundefined\else
++  \luatextrue
++  \ifnum\luatexversion>84
++    \pdftrue
++  \fi
++\fi
++
++\newif\ifpdforxetex
++\ifpdf
++  \pdforxetextrue
++\fi
++\ifxetex
++  \pdforxetextrue
++\fi
++
++
++
++% Whether to use non-ASCII bytes in internal link targets.  Presently this
++% is almost always on.
++\newif\iftxiuseunicodedestname
++\txiuseunicodedestnametrue
++
+ %
+ % For LuaTeX
+ %
+-\newif\iftxiuseunicodedestname
+-\txiuseunicodedestnamefalse % For pdfTeX etc.
+-
+-\ifx\luatexversion\thisisundefined
+-\else
++\ifluatex
+   % Use Unicode destination names
+   \txiuseunicodedestnametrue
+   % Escape PDF strings with converting UTF-16 from UTF-8
+@@ -1026,13 +1071,13 @@ where each line of input produces a line
+         end
+       end
+     }
+-    % The -2 in the arguments here gives all the input to TeX catcode 12
+-    % (other) or 10 (space), preventing undefined control sequence errors. See
++    % The -2 in the arguments here gives all the input to TeX catcode 12 
++    % (other) or 10 (space), preventing undefined control sequence errors. See 
+     % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html
+     %
+   \endgroup
+   \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}}
+-  \ifnum\luatexversion>84
++  \ifpdf
+     % For LuaTeX >= 0.85
+     \def\pdfdest{\pdfextension dest}
+     \let\pdfoutput\outputmode
+@@ -1055,28 +1100,6 @@ where each line of input produces a line
+   \fi
+ \fi
+-% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+-% can be set).  So we test for \relax and 0 as well as being undefined.
+-\ifx\pdfoutput\thisisundefined
+-\else
+-  \ifx\pdfoutput\relax
+-  \else
+-    \ifcase\pdfoutput
+-    \else
+-      \pdftrue
+-    \fi
+-  \fi
+-\fi
+-
+-\newif\ifpdforxetex
+-\pdforxetexfalse
+-\ifpdf
+-  \pdforxetextrue
+-\fi
+-\ifx\XeTeXrevision\thisisundefined\else
+-  \pdforxetextrue
+-\fi
+-
+ % Output page labels information.
+ % See PDF reference v.1.7 p.594, section 8.3.1.
+@@ -1129,7 +1152,7 @@ where each line of input produces a line
+ % for display in the outlines, and in other places.  Thus, we have to
+ % double any backslashes.  Otherwise, a name like "\node" will be
+ % interpreted as a newline (\n), followed by o, d, e.  Not good.
+-%
++% 
+ % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+ % related messages.  The final outcome is that it is up to the TeX user
+ % to double the backslashes and otherwise make the string valid, so
+@@ -1163,58 +1186,90 @@ with PDF output, and none of those forma
+ be supported due to the design of the PDF format; use regular TeX (DVI
+ output) for that.)}
++% definitions for pdftex or luatex with pdf output
+ \ifpdf
++  % Strings in PDF outlines can either be ASCII, or encoded in UTF-16BE
++  % with BOM.  Unfortunately there is no simple way with pdftex to output
++  % UTF-16, so we have to do some quite convoluted expansion games if we
++  % find the string contains a non-ASCII codepoint if we want these to
++  % display correctly.  We generated the UTF-16 sequences in
++  % \DeclareUnicodeCharacter and we access them here.
+   %
+-  % Color manipulation macros using ideas from pdfcolor.tex,
+-  % except using rgb instead of cmyk; the latter is said to render as a
+-  % very dark gray on-screen and a very dark halftone in print, instead
+-  % of actual black. The dark red here is dark enough to print on paper as
+-  % nearly black, but still distinguishable for online viewing.  We use
+-  % black by default, though.
+-  \def\rgbDarkRed{0.50 0.09 0.12}
+-  \def\rgbBlack{0 0 0}
++  \def\defpdfoutlinetextunicode#1{%
++    \def\pdfoutlinetext{#1}%
++    %
++    % Make UTF-8 sequences expand to UTF-16 definitions.
++    \passthroughcharsfalse \utfbytespdftrue
++    \utfviiidefinedwarningfalse
++    %
++    % Completely expand, eliminating any control sequences such as \code,
++    % leaving only possibly \utfbytes.
++    \let\utfbytes\relax
++    \pdfaccentliterals
++    \xdef\pdfoutlinetextchecked{#1}%
++    \checkutfbytes
++  }%
++  % Check if \utfbytes occurs in expansion.
++  \def\checkutfbytes{%
++    \expandafter\checkutfbytesz\pdfoutlinetextchecked\utfbytes\finish
++  }%
++  \def\checkutfbytesz#1\utfbytes#2\finish{%
++    \def\after{#2}%
++    \ifx\after\empty
++      % No further action needed.  Output ASCII string as-is, as converting
++      % to UTF-16 is somewhat slow (and uses more space).
++      \global\let\pdfoutlinetext\pdfoutlinetextchecked
++    \else
++      \passthroughcharstrue % pass UTF-8 sequences unaltered
++      \xdef\pdfoutlinetext{\pdfoutlinetext}%
++      \expandafter\expandutfsixteen\expandafter{\pdfoutlinetext}\pdfoutlinetext
++    \fi
++  }%
+   %
+-  % rg sets the color for filling (usual text, etc.);
+-  % RG sets the color for stroking (thin rules, e.g., normal _'s).
+-  \def\pdfsetcolor#1{\pdfliteral{#1 rg  #1 RG}}
++  \catcode2=1 % begin-group character
++  \catcode3=2 % end-group character
+   %
+-  % Set color, and create a mark which defines \thiscolor accordingly,
+-  % so that \makeheadline knows which color to restore.
+-  \def\curcolor{0 0 0}%
+-  \def\setcolor#1{%
+-    \ifx#1\curcolor\else
+-      \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
+-      \domark
+-      \pdfsetcolor{#1}%
+-      \xdef\curcolor{#1}%
+-    \fi
+-  }
++  % argument should be pure UTF-8 with no control sequences.  convert to
++  % UTF-16BE by inserting null bytes before bytes < 128 and expanding
++  % UTF-8 multibyte sequences to saved UTF-16BE sequences.
++  \def\expandutfsixteen#1#2{%
++    \bgroup \asciitounicode
++    \passthroughcharsfalse
++    \let\utfbytes\asis
++    %
++    % for Byte Order Mark (BOM)
++    \catcode"FE=12
++    \catcode"FF=12
++    %
++    % we want to treat { and } in #1 as any other ASCII bytes.  however,
++    % we need grouping characters for \scantokens and definitions/assignments,
++    % so define alternative grouping characters using control characters
++    % that are unlikely to occur.
++    % this does not affect 0x02 or 0x03 bytes arising from expansion as
++    % these are tokens with different catcodes.
++    \catcode"02=1 % begin-group character
++    \catcode"03=2 % end-group character
++    %
++    \expandafter\xdef\expandafter#2\scantokens{%
++      ^^02^^fe^^ff#1^^03}%
++    % NB we need \scantokens to provide both the open and close group tokens
++    % for \xdef otherwise there is an e-TeX error "File ended while
++    % scanning definition of..."
++    % NB \scantokens is a e-TeX command which is assumed to be provided by
++    % pdfTeX.
++    %
++    \egroup
++  }%
+   %
+-  \let\maincolor\rgbBlack
+-  \pdfsetcolor{\maincolor}
+-  \edef\thiscolor{\maincolor}
+-  \def\currentcolordefs{}
++  \catcode2=12 \catcode3=12 % defaults
+   %
+-  \def\makefootline{%
+-    \baselineskip24pt
+-    \line{\pdfsetcolor{\maincolor}\the\footline}%
+-  }
++  % Color support
+   %
+-  \def\makeheadline{%
+-    \vbox to 0pt{%
+-      \vskip-22.5pt
+-      \line{%
+-        \vbox to8.5pt{}%
+-        % Extract \thiscolor definition from the marks.
+-        \getcolormarks
+-        % Typeset the headline with \maincolor, then restore the color.
+-        \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+-      }%
+-      \vss
+-    }%
+-    \nointerlineskip
+-  }
++  % rg sets the color for filling (usual text, etc.);
++  % RG sets the color for stroking (thin rules, e.g., normal _'s).
++  \def\pdfsetcolor#1{\pdfliteral{#1 rg  #1 RG}}
+   %
++  % PDF outline support
+   %
+   \pdfcatalog{/PageMode /UseOutlines}
+   %
+@@ -1311,18 +1366,15 @@ output) for that.)}
+       \def\pdfoutlinetext{#1}%
+     \else
+       \ifx \declaredencoding \utfeight
+-        \ifx\luatexversion\thisisundefined
+-          % For pdfTeX  with UTF-8.
+-          % TODO: the PDF format can use UTF-16 in bookmark strings,
+-          % but the code for this isn't done yet.
+-          % Use ASCII approximations.
+-          \passthroughcharsfalse
+-          \def\pdfoutlinetext{#1}%
+-        \else
++        \ifluatex
+           % For LuaTeX with UTF-8.
+           % Pass through Unicode characters for title texts.
+           \passthroughcharstrue
+-          \def\pdfoutlinetext{#1}%
++          \pdfaccentliterals
++          \xdef\pdfoutlinetext{#1}%
++        \else
++          % For pdfTeX with UTF-8.
++          \defpdfoutlinetextunicode{#1}%
+         \fi
+       \else
+         % For non-Latin-1 or non-UTF-8 encodings.
+@@ -1341,14 +1393,6 @@ output) for that.)}
+     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+   }
+   %
+-  % used to mark target names; must be expandable.
+-  \def\pdfmkpgn#1{#1}
+-  %
+-  % by default, use black for everything.
+-  \def\urlcolor{\rgbBlack}
+-  \let\linkcolor\rgbBlack
+-  \def\endlink{\setcolor{\maincolor}\pdfendlink}
+-  %
+   % Adding outlines to PDF; macros for calculating structure of outlines
+   % come from Petr Olsak
+   \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+@@ -1374,7 +1418,7 @@ output) for that.)}
+       \def\pdfdestname{#4}%
+     \fi
+     %
+-    \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}%
++    \pdfoutline goto name{\pdfdestname}#2{\pdfoutlinetext}%
+   }
+   %
+   \def\pdfmakeoutlines{%
+@@ -1385,15 +1429,18 @@ output) for that.)}
+       \def\thischapnum{##2}%
+       \def\thissecnum{0}%
+       \def\thissubsecnum{0}%
++      \def\indexlastsec{chap\thischapnum}%
+       }%
+       \def\numsecentry##1##2##3##4{%
+       \advancenumber{chap\thischapnum}%
+       \def\thissecnum{##2}%
+       \def\thissubsecnum{0}%
++      \def\indexlastsec{sec\thissecnum}%
+       }%
+       \def\numsubsecentry##1##2##3##4{%
+       \advancenumber{sec\thissecnum}%
+       \def\thissubsecnum{##2}%
++      \def\indexlastsec{subsec\thissecnum}%
+       }%
+       \def\numsubsubsecentry##1##2##3##4{%
+       \advancenumber{subsec\thissubsecnum}%
+@@ -1401,7 +1448,13 @@ output) for that.)}
+       \def\thischapnum{0}%
+       \def\thissecnum{0}%
+       \def\thissubsecnum{0}%
++      \let\indexlastsec\empty
+       %
++      % Index initials are subsidiary to whatever sectioning command just
++      % occurred, usually @appendix or @chapter but occasionally a lower level.
++      \def\idxinitialentry##1##2##3##4{%
++        \expandafter\advancenumber\expandafter{\indexlastsec}%
++      }%
+       % use \def rather than \let here because we redefine \chapentry et
+       % al. a second time, below.
+       \def\appentry{\numchapentry}%
+@@ -1412,6 +1465,7 @@ output) for that.)}
+       \def\unnsecentry{\numsecentry}%
+       \def\unnsubsecentry{\numsubsecentry}%
+       \def\unnsubsubsecentry{\numsubsubsecentry}%
++      %
+       \readdatafile{toc}%
+       %
+       % Read toc second time, this time actually producing the outlines.
+@@ -1421,7 +1475,7 @@ output) for that.)}
+       % We use the node names as the destinations.
+       %
+       % Currently we prefix the section name with the section number
+-      % for chapter and appendix headings only in order to avoid too much
++      % for chapter and appendix headings only in order to avoid too much 
+       % horizontal space being required in the PDF viewer.
+       \def\numchapentry##1##2##3##4{%
+         \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+@@ -1433,28 +1487,23 @@ output) for that.)}
+         \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+       \def\numsubsubsecentry##1##2##3##4{% count is always zero
+         \dopdfoutline{##1}{}{##3}{##4}}%
+-      %
+-      % PDF outlines are displayed using system fonts, instead of
+-      % document fonts.  Therefore we cannot use special characters,
+-      % since the encoding is unknown.  For example, the eogonek from
+-      % Latin 2 (0xea) gets translated to a | character.  Info from
+-      % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+-      %
+-      % TODO this right, we have to translate 8-bit characters to
+-      % their "best" equivalent, based on the @documentencoding.  Too
+-      % much work for too little return.  Just use the ASCII equivalents
+-      % we use for the index sort strings.
+-      %
+-      \indexnofonts
++      \def\idxinitialentry##1##2##3##4{%
++        \dopdfoutline{##1}{}{idx.##1.##2}{##4}}%
++      % 
++      \ifnodeseen\else \dopdfoutlinecontents \fi % for @contents at beginning
+       \setupdatafile
+       % We can have normal brace characters in the PDF outlines, unlike
+       % Texinfo index files.  So set that up.
+       \def\{{\lbracecharliteral}%
+       \def\}{\rbracecharliteral}%
+       \catcode`\\=\active \otherbackslash
+-      \input \tocreadfilename
++      \input \tocreadfilename\relax
++      \ifnodeseen \dopdfoutlinecontents \fi % for @contents at end
+     \endgroup
+   }
++  \def\dopdfoutlinecontents{%
++    \expandafter\dopdfoutline\expandafter{\putwordTOC}{}{txi.CONTENTS}{}%
++  }
+   {\catcode`[=1 \catcode`]=2
+    \catcode`{=\other \catcode`}=\other
+    \gdef\lbracecharliteral[{]%
+@@ -1480,55 +1529,16 @@ output) for that.)}
+   \else
+     \let \startlink \pdfstartlink
+   \fi
+-  % make a live url in pdf output.
+-  \def\pdfurl#1{%
+-    \begingroup
+-      % it seems we really need yet another set of dummies; have not
+-      % tried to figure out what each command should do in the context
+-      % of @url.  for now, just make @/ a no-op, that's the only one
+-      % people have actually reported a problem with.
+-      %
+-      \normalturnoffactive
+-      \def\@{@}%
+-      \let\/=\empty
+-      \makevalueexpandable
+-      % do we want to go so far as to use \indexnofonts instead of just
+-      % special-casing \var here?
+-      \def\var##1{##1}%
+-      %
+-      \leavevmode\setcolor{\urlcolor}%
+-      \startlink attr{/Border [0 0 0]}%
+-        user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+-    \endgroup}
+-  % \pdfgettoks - Surround page numbers in #1 with @pdflink.  #1 may
+-  % be a simple number, or a list of numbers in the case of an index
+-  % entry.
+-  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+-  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+-  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+-  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+-  \def\maketoks{%
+-    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+-    \ifx\first0\adn0
+-    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+-    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+-    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+-    \else
+-      \ifnum0=\countA\else\makelink\fi
+-      \ifx\first.\let\next=\done\else
+-        \let\next=\maketoks
+-        \addtokens{\toksB}{\the\toksD}
+-        \ifx\first,\addtokens{\toksB}{\space}\fi
+-      \fi
+-    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+-    \next}
+-  \def\makelink{\addtokens{\toksB}%
+-    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
++  \def\pdfmakeurl#1{%
++    \startlink attr{/Border [0 0 0]}%
++      user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
++  }%
++  \def\endlink{\setcolor{\maincolor}\pdfendlink}
++  %
+   \def\pdflink#1{\pdflinkpage{#1}{#1}}%
+   \def\pdflinkpage#1#2{%
+-    \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
++    \startlink attr{/Border [0 0 0]} goto name{#1}
+     \setcolor{\linkcolor}#2\endlink}
+-  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+ \else
+   % non-pdf mode
+   \let\pdfmkdest = \gobble
+@@ -1537,13 +1547,12 @@ output) for that.)}
+   \let\setcolor = \gobble
+   \let\pdfsetcolor = \gobble
+   \let\pdfmakeoutlines = \relax
+-\fi  % \ifx\pdfoutput
++\fi
+ %
+ % For XeTeX
+ %
+-\ifx\XeTeXrevision\thisisundefined
+-\else
++\ifxetex
+   %
+   % XeTeX version check
+   %
+@@ -1569,45 +1578,8 @@ output) for that.)}
+   \fi
+   %
+   % Color support
+-  %
+-  \def\rgbDarkRed{0.50 0.09 0.12}
+-  \def\rgbBlack{0 0 0}
+-  %
+   \def\pdfsetcolor#1{\special{pdf:scolor [#1]}}
+   %
+-  % Set color, and create a mark which defines \thiscolor accordingly,
+-  % so that \makeheadline knows which color to restore.
+-  \def\setcolor#1{%
+-    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
+-    \domark
+-    \pdfsetcolor{#1}%
+-  }
+-  %
+-  \def\maincolor{\rgbBlack}
+-  \pdfsetcolor{\maincolor}
+-  \edef\thiscolor{\maincolor}
+-  \def\currentcolordefs{}
+-  %
+-  \def\makefootline{%
+-    \baselineskip24pt
+-    \line{\pdfsetcolor{\maincolor}\the\footline}%
+-  }
+-  %
+-  \def\makeheadline{%
+-    \vbox to 0pt{%
+-      \vskip-22.5pt
+-      \line{%
+-        \vbox to8.5pt{}%
+-        % Extract \thiscolor definition from the marks.
+-        \getcolormarks
+-        % Typeset the headline with \maincolor, then restore the color.
+-        \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+-      }%
+-      \vss
+-    }%
+-    \nointerlineskip
+-  }
+-  %
+   % PDF outline support
+   %
+   % Emulate pdfTeX primitive
+@@ -1645,11 +1617,6 @@ output) for that.)}
+     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+   }
+   %
+-  % by default, use black for everything.
+-  \def\urlcolor{\rgbBlack}
+-  \def\linkcolor{\rgbBlack}
+-  \def\endlink{\setcolor{\maincolor}\pdfendlink}
+-  %
+   \def\dopdfoutline#1#2#3#4{%
+     \setpdfoutlinetext{#1}
+     \setpdfdestname{#3}
+@@ -1663,24 +1630,30 @@ output) for that.)}
+   %
+   \def\pdfmakeoutlines{%
+     \begingroup
+-      %
+       % For XeTeX, counts of subentries are not necessary.
+       % Therefore, we read toc only once.
+       %
+       % We use node names as destinations.
+       %
+       % Currently we prefix the section name with the section number
+-      % for chapter and appendix headings only in order to avoid too much
++      % for chapter and appendix headings only in order to avoid too much 
+       % horizontal space being required in the PDF viewer.
+       \def\partentry##1##2##3##4{}% ignore parts in the outlines
+       \def\numchapentry##1##2##3##4{%
+-        \dopdfoutline{##2 ##1}{1}{##3}{##4}}%
++        \dopdfoutline{##2 ##1}{1}{##3}{##4}%
++        \def\indexseclevel{2}}%
+       \def\numsecentry##1##2##3##4{%
+-        \dopdfoutline{##1}{2}{##3}{##4}}%
++        \dopdfoutline{##1}{2}{##3}{##4}%
++        \def\indexseclevel{3}}%
+       \def\numsubsecentry##1##2##3##4{%
+-        \dopdfoutline{##1}{3}{##3}{##4}}%
++        \dopdfoutline{##1}{3}{##3}{##4}%
++        \def\indexseclevel{4}}%
+       \def\numsubsubsecentry##1##2##3##4{%
+-        \dopdfoutline{##1}{4}{##3}{##4}}%
++        \dopdfoutline{##1}{4}{##3}{##4}%
++        \def\indexseclevel{5}}%
++      %
++      \def\idxinitialentry##1##2##3##4{%
++         \dopdfoutline{##1}{\indexseclevel}{idx.##1.##2}{##4}}%
+       %
+       \let\appentry\numchapentry%
+       \let\appsecentry\numsecentry%
+@@ -1696,15 +1669,25 @@ output) for that.)}
+       % Therefore, the encoding and the language may not be considered.
+       %
+       \indexnofonts
++      \pdfaccentliterals
++      \ifnodeseen\else \dopdfoutlinecontents \fi % for @contents at beginning
++      %
+       \setupdatafile
+       % We can have normal brace characters in the PDF outlines, unlike
+       % Texinfo index files.  So set that up.
+       \def\{{\lbracecharliteral}%
+       \def\}{\rbracecharliteral}%
+       \catcode`\\=\active \otherbackslash
+-      \input \tocreadfilename
++      \xetexpreauxfile
++      \input \tocreadfilename\relax
++      \xetexpostauxfile
++      \ifnodeseen \dopdfoutlinecontents \fi % for @contents at end
+     \endgroup
+   }
++  \def\dopdfoutlinecontents{%
++    \expandafter\dopdfoutline\expandafter
++      {\putwordTOC}{1}{txi.CONTENTS}{txi.CONTENTS}%
++  }
+   {\catcode`[=1 \catcode`]=2
+    \catcode`{=\other \catcode`}=\other
+    \gdef\lbracecharliteral[{]%
+@@ -1717,7 +1700,7 @@ output) for that.)}
+   % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315,
+   % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings.
+   % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
+-%
++  %
+   \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+     \ifx\PP\D\let\nextsp\relax
+     \else\let\nextsp\skipspaces
+@@ -1732,55 +1715,17 @@ output) for that.)}
+     \edef\temp{#1}%
+     \expandafter\skipspaces\temp|\relax
+   }
+-  % make a live url in pdf output.
+-  \def\pdfurl#1{%
+-    \begingroup
+-      % it seems we really need yet another set of dummies; have not
+-      % tried to figure out what each command should do in the context
+-      % of @url.  for now, just make @/ a no-op, that's the only one
+-      % people have actually reported a problem with.
+-      %
+-      \normalturnoffactive
+-      \def\@{@}%
+-      \let\/=\empty
+-      \makevalueexpandable
+-      % do we want to go so far as to use \indexnofonts instead of just
+-      % special-casing \var here?
+-      \def\var##1{##1}%
+-      %
+-      \leavevmode\setcolor{\urlcolor}%
+-      \special{pdf:bann << /Border [0 0 0]
+-        /Subtype /Link /A << /S /URI /URI (#1) >> >>}%
+-    \endgroup}
++  \def\pdfmakeurl#1{%
++    \special{pdf:bann << /Border [0 0 0]
++      /Subtype /Link /A << /S /URI /URI (#1) >> >>}%
++  }
+   \def\endlink{\setcolor{\maincolor}\special{pdf:eann}}
+-  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+-  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+-  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+-  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+-  \def\maketoks{%
+-    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+-    \ifx\first0\adn0
+-    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+-    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+-    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+-    \else
+-      \ifnum0=\countA\else\makelink\fi
+-      \ifx\first.\let\next=\done\else
+-        \let\next=\maketoks
+-        \addtokens{\toksB}{\the\toksD}
+-        \ifx\first,\addtokens{\toksB}{\space}\fi
+-      \fi
+-    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+-    \next}
+-  \def\makelink{\addtokens{\toksB}%
+-    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+   \def\pdflink#1{\pdflinkpage{#1}{#1}}%
+   \def\pdflinkpage#1#2{%
+     \special{pdf:bann << /Border [0 0 0]
+       /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}%
+     \setcolor{\linkcolor}#2\endlink}
+-  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+-%
++  %
+   %
+   % @image support
+   %
+@@ -1837,6 +1782,164 @@ output) for that.)}
+   }
+ \fi
++% common definitions and code for pdftex, luatex and xetex
++\ifpdforxetex
++  % The dark red here is dark enough to print on paper as
++  % nearly black, but still distinguishable for online viewing.  We use
++  % black by default, though.
++  \def\rgbDarkRed{0.50 0.09 0.12}
++  \def\rgbBlack{0 0 0}
++  %
++  % Set color, and create a mark which defines \thiscolor accordingly,
++  % so that \makeheadline knows which color to restore.
++  \def\curcolor{0 0 0}%
++  \def\setcolor#1{%
++    \ifx#1\curcolor\else
++      \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
++      \domark
++      \pdfsetcolor{#1}%
++      \xdef\curcolor{#1}%
++    \fi
++  }
++  %
++  \let\maincolor\rgbBlack
++  \pdfsetcolor{\maincolor}
++  \edef\thiscolor{\maincolor}
++  \def\currentcolordefs{}
++  %
++  \def\makefootline{%
++    \baselineskip24pt
++    \line{\pdfsetcolor{\maincolor}\the\footline}%
++  }
++  %
++  \def\makeheadline{%
++    \vbox to 0pt{%
++      \vskip-22.5pt
++      \line{%
++        \vbox to8.5pt{}%
++        % Extract \thiscolor definition from the marks.
++        \getcolormarks
++        % Typeset the headline with \maincolor, then restore the color.
++        \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
++      }%
++      \vss
++    }%
++    \nointerlineskip
++  }
++  %
++  % by default, use black for everything.
++  \def\urlcolor{\rgbBlack}
++  \let\linkcolor\rgbBlack
++  %
++  % make a live url in pdf output.
++  \def\pdfurl#1{%
++    \begingroup
++      % it seems we really need yet another set of dummies; have not
++      % tried to figure out what each command should do in the context
++      % of @url.  for now, just make @/ a no-op, that's the only one
++      % people have actually reported a problem with.
++      %
++      \normalturnoffactive
++      \def\@{@}%
++      \let\/=\empty
++      \makevalueexpandable
++      % do we want to go so far as to use \indexnofonts instead of just
++      % special-casing \var here?
++      \def\var##1{##1}%
++      %
++      \leavevmode\setcolor{\urlcolor}%
++      \pdfmakeurl{#1}%
++    \endgroup}
++  %
++  % \pdfgettoks - Surround page numbers in #1 with @pdflink.  #1 may
++  % be a simple number, or a list of numbers in the case of an index
++  % entry.
++  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
++  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
++  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
++  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
++  \def\maketoks{%
++    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
++    \ifx\first0\adn0
++    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
++    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
++    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
++    \else
++      \ifnum0=\countA\else\makelink\fi
++      \ifx\first.\let\next=\done\else
++        \let\next=\maketoks
++        \addtokens{\toksB}{\the\toksD}
++        \ifx\first,\addtokens{\toksB}{\space}\fi
++      \fi
++    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
++    \next}
++  \def\makelink{\addtokens{\toksB}%
++    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
++  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
++\fi
++
++\ifpdforxetex
++  % for pdftex.
++  {\catcode`^^cc=13
++  \gdef\pdfaccentliteralsutfviii{%
++    % For PDF outline only.  Unicode combining accents follow the
++    % character they modify.  Note we need at least the first byte
++    % of the UTF-8 sequences to have an active catcode to allow the
++    % definitions to do their magic.
++    \def\"##1{##1^^cc^^88}%           U+0308
++    \def\'##1{##1^^cc^^81}%           U+0301
++    \def\,##1{##1^^cc^^a7}%           U+0327
++    \def\=##1{##1^^cc^^85}%           U+0305
++    \def\^##1{##1^^cc^^82}%           U+0302
++    \def\`##1{##1^^cc^^80}%           U+0300
++    \def\~##1{##1^^cc^^83}%           U+0303
++    \def\dotaccent##1{##1^^cc^^87}%   U+0307
++    \def\H##1{##1^^cc^^8b}%           U+030B
++    \def\ogonek##1{##1^^cc^^a8}%      U+0328
++    \def\ringaccent##1{##1^^cc^^8a}%  U+030A
++    \def\u##1{##1^^cc^^8c}%           U+0306
++    \def\ubaraccent##1{##1^^cc^^b1}%  U+0331
++    \def\udotaccent##1{##1^^cc^^a3}%  U+0323
++    \def\v##1{##1^^cc^^8c}%           U+030C
++    % this definition of @tieaccent will only work with exactly two characters
++    % in argument as we need to insert the combining character between them.
++    \def\tieaccent##1{\tieaccentz##1}%
++    \def\tieaccentz##1##2{##1^^cd^^a1##2} % U+0361
++  }}%
++  %
++  % for xetex and luatex, which both support extended ^^^^ escapes and
++  % process the Unicode codepoint as a single token.
++  \gdef\pdfaccentliteralsnative{%
++    \def\"##1{##1^^^^0308}%
++    \def\'##1{##1^^^^0301}%
++    \def\,##1{##1^^^^0327}%
++    \def\=##1{##1^^^^0305}%
++    \def\^##1{##1^^^^0302}%
++    \def\`##1{##1^^^^0300}%
++    \def\~##1{##1^^^^0303}%
++    \def\dotaccent##1{##1^^^^0307}%
++    \def\H##1{##1^^^^030b}%
++    \def\ogonek##1{##1^^^^0328}%
++    \def\ringaccent##1{##1^^^^030a}%
++    \def\u##1{##1^^^^0306}%
++    \def\ubaraccent##1{##1^^^^0331}%
++    \def\udotaccent##1{##1^^^^0323}%
++    \def\v##1{##1^^^^030c}%
++    \def\tieaccent##1{\tieaccentz##1}%
++    \def\tieaccentz##1##2{##1^^^^0361##2} % U+0361
++  }%
++  %
++  % use the appropriate definition
++  \ifluatex
++    \let\pdfaccentliterals\pdfaccentliteralsnative
++  \else
++    \ifxetex
++      \let\pdfaccentliterals\pdfaccentliteralsnative
++    \else
++      \let\pdfaccentliterals\pdfaccentliteralsutfviii
++    \fi
++  \fi
++\fi
+ %
+ \message{fonts,}
+@@ -2697,7 +2800,7 @@ end
+ }
+ % Commands to set the quote options.
+-%
++% 
+ \parseargdef\codequoteundirected{%
+   \def\temp{#1}%
+   \ifx\temp\onword
+@@ -2743,7 +2846,7 @@ end
+ % If we are in a monospaced environment, however, 1) always use \ttsl,
+ % and 2) do not add an italic correction.
+ \def\dosmartslant#1#2{%
+-  \ifusingtt
++  \ifusingtt 
+     {{\ttsl #2}\let\next=\relax}%
+     {\def\next{{#1#2}\smartitaliccorrection}}%
+   \next
+@@ -2768,15 +2871,15 @@ end
+ % @cite unconditionally uses \sl with \smartitaliccorrection.
+ \def\cite#1{{\sl #1}\smartitaliccorrection}
+-% @var unconditionally uses \sl.  This gives consistency for
+-% parameter names whether they are in @def, @table @code or a
+-% regular paragraph.
+-%  To get ttsl font for @var when used in code context, @set txicodevaristt.
+-% The \null is to reset \spacefactor.
++% By default, use ttsl font for @var when used in code context.
++% To unconditionally use \sl for @var, @clear txicodevaristt.  This
++% gives consistency for parameter names whether they are in @def,
++% @table @code or a regular paragraph.
+ \def\aftersmartic{}
+ \def\var#1{%
+   \let\saveaftersmartic = \aftersmartic
+   \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
++  % The \null is to reset \spacefactor.
+   %
+   \ifflagclear{txicodevaristt}%
+     {\def\varnext{{{\sl #1}}\smartitaliccorrection}}%
+@@ -2784,7 +2887,6 @@ end
+   \varnext
+ }
+-% To be removed after next release
+ \def\SETtxicodevaristt{}% @set txicodevaristt
+ \let\i=\smartitalic
+@@ -2804,7 +2906,7 @@ end
+ \def\ii#1{{\it #1}}             % italic font
+ % @b, explicit bold.  Also @strong.
+-\def\b#1{{\bf #1}}
++\def\b#1{{\bf \defcharsdefault #1}}
+ \let\strong=\b
+ % @sansserif, explicit sans.
+@@ -2922,7 +3024,7 @@ end
+   \gdef\codedash{\futurelet\next\codedashfinish}
+   \gdef\codedashfinish{%
+     \normaldash % always output the dash character itself.
+-    %
++    % 
+     % Now, output a discretionary to allow a line break, unless
+     % (a) the next character is a -, or
+     % (b) the preceding character is a -, or
+@@ -3028,25 +3130,25 @@ end
+         % For pdfTeX and LuaTeX
+         \ifurefurlonlylink
+           % PDF plus option to not display url, show just arg
+-          \unhbox0
++          \unhbox0             
+         \else
+           % PDF, normally display both arg and url for consistency,
+           % visibility, if the pdf is eventually used to print, etc.
+           \unhbox0\ (\urefcode{#1})%
+         \fi
+       \else
+-        \ifx\XeTeXrevision\thisisundefined
+-          \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
+-        \else
++        \ifxetex
+           % For XeTeX
+           \ifurefurlonlylink
+             % PDF plus option to not display url, show just arg
+-            \unhbox0
++            \unhbox0             
+           \else
+             % PDF, normally display both arg and url for consistency,
+             % visibility, if the pdf is eventually used to print, etc.
+             \unhbox0\ (\urefcode{#1})%
+           \fi
++        \else
++          \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
+         \fi
+       \fi
+     \else
+@@ -3099,10 +3201,10 @@ end
+   }
+ }
+-% By default we'll break after the special characters, but some people like to
+-% break before the special chars, so allow that.  Also allow no breaking at
++% By default we'll break after the special characters, but some people like to 
++% break before the special chars, so allow that.  Also allow no breaking at 
+ % all, for manual control.
+-%
++% 
+ \parseargdef\urefbreakstyle{%
+   \def\txiarg{#1}%
+   \ifx\txiarg\wordnone
+@@ -3121,16 +3223,17 @@ end
+ \def\wordnone{none}
+ % Allow a ragged right output to aid breaking long URL's.  There can
+-% be a break at the \allowbreak with no extra glue (if the existing stretch in
++% be a break at the \allowbreak with no extra glue (if the existing stretch in 
+ % the line is sufficient), a break at the \penalty with extra glue added
+ % at the end of the line, or no break at all here.
+-%   Changing the value of the penalty and/or the amount of stretch affects how
++%   Changing the value of the penalty and/or the amount of stretch affects how 
+ % preferable one choice is over the other.
++%   Check test cases in doc/texinfo-tex-test.texi before making any changes.
+ \def\urefallowbreak{%
+   \penalty0\relax
+-  \hskip 0pt plus 2 em\relax
++  \hskip 0pt plus 3 em\relax
+   \penalty1000\relax
+-  \hskip 0pt plus -2 em\relax
++  \hskip 0pt plus -3 em\relax
+ }
+ \urefbreakstyle after
+@@ -3339,7 +3442,7 @@ $$%
+ % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+ % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+ % except specified as a normal braced arg, so no newlines to worry about.
+-%
++% 
+ \def\outfmtnametex{tex}
+ %
+ \long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+@@ -3347,7 +3450,7 @@ $$%
+   \def\inlinefmtname{#1}%
+   \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
+ }
+-%
++% 
+ % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
+ % FMTNAME is tex, else ELSE-TEXT.
+ \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
+@@ -3363,7 +3466,7 @@ $$%
+ % *right* brace they would have to use a command anyway, so they may as
+ % well use a command to get a left brace too.  We could re-use the
+ % delimiter character idea from \verb, but it seems like overkill.
+-%
++% 
+ \long\def\inlineraw{\tex \doinlineraw}
+ \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+ \def\doinlinerawtwo#1,#2,\finish{%
+@@ -3649,7 +3752,7 @@ $$%
+ % for non-CM glyphs.  That is ec* for regular text and tc* for the text
+ % companion symbols (LaTeX TS1 encoding).  Both are part of the ec
+ % package and follow the same conventions.
+-%
++% 
+ \def\ecfont{\etcfont{e}}
+ \def\tcfont{\etcfont{t}}
+ %
+@@ -3665,15 +3768,24 @@ $$%
+      {\font\thisecfont = #1ctt\ecsize \space at \nominalsize}%
+   % else
+      {\ifx\curfontstyle\bfstylename
+-        % bold:
+-        \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
++        \etcfontbold{#1}%
+       \else
+-        % regular:
+-        \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize
++        \ifrmisbold
++          \etcfontbold{#1}%
++        \else
++          % regular:
++          \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space
++            at \nominalsize
++        \fi
+       \fi}%
+   \thisecfont
+ }
++\def\etcfontbold#1{%
++  % bold:
++  \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
++}
++
+ % @registeredsymbol - R in a circle.  The font for the R should really
+ % be smaller yet, but lllsize is the best we can do for now.
+ % Adapted from the plain.tex definition of \copyright.
+@@ -3731,7 +3843,7 @@ $$%
+               after the title page.}}%
+ \def\setshortcontentsaftertitlepage{%
+   \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
+-              command; move your @shortcontents and @contents commands if you
++              command; move your @shortcontents and @contents commands if you 
+               want the contents after the title page.}}%
+ \parseargdef\shorttitlepage{%
+@@ -3776,7 +3888,8 @@ $$%
+ }
+ \def\finishtitlepage{%
+-  \vskip4pt \hrule height 2pt width \hsize
++  \ifseenauthor \vskip4pt \else \vskip 0pt plus 1filll \fi
++  \hrule height 2pt width \hsize
+   \vskip\titlepagebottomglue
+   \finishedtitlepagetrue
+ }
+@@ -3785,7 +3898,7 @@ $$%
+ % don't worry much about spacing, ragged right.  This should be used
+ % inside a \vbox, and fonts need to be set appropriately first. \par should
+ % be specified before the end of the \vbox, since a vbox is a group.
+-%
++% 
+ \def\raggedtitlesettings{%
+   \rm
+   \hyphenpenalty=10000
+@@ -3799,33 +3912,105 @@ $$%
+ \let\subtitlerm=\rmfont
+ \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
++\let\savedtitle\empty
++\let\savedsubtitlegroup\empty
++\let\savedauthorgroup\empty
++
+ \parseargdef\title{%
+-  \checkenv\titlepage
+-  \vbox{\titlefonts \raggedtitlesettings #1\par}%
+-  % print a rule at the page bottom also.
+-  \finishedtitlepagefalse
+-  \vskip4pt \hrule height 4pt width \hsize \vskip4pt
++  \expandafter\ifx\thisenv\documentinfo
++    \gdef\savedtitle{#1}%
++  \else
++    \checkenv\titlepage
++    \vbox{\titlefonts \raggedtitlesettings #1\par}%
++    % print a rule at the page bottom also.
++    \finishedtitlepagefalse
++    \vskip4pt \hrule height 4pt width \hsize \vskip4pt
++  \fi
+ }
+ \parseargdef\subtitle{%
+-  \checkenv\titlepage
+-  {\subtitlefont \rightline{#1}}%
++  \expandafter\ifx\thisenv\documentinfo
++    \ifx\savedsubtitlegroup\empty
++      \gdef\savedsubtitlegroup{\savedsubtitle{#1}}%
++    \else
++      \expandafter\gdef\expandafter\savedsubtitlegroup\expandafter{%
++        \savedsubtitlegroup\savedsubtitle{#1}}%
++    \fi
++  \else
++    \checkenv\titlepage
++    {\subtitlefont \rightline{#1}}%
++  \fi
+ }
+ % @author should come last, but may come many times.
+ % It can also be used inside @quotation.
+ %
+ \parseargdef\author{%
+-  \def\temp{\quotation}%
+-  \ifx\thisenv\temp
+-    \def\quotationauthor{#1}% printed in \Equotation.
++  \expandafter\ifx\thisenv\documentinfo
++    \ifx\savedauthorgroup\empty
++      \gdef\savedauthorgroup{\savedauthor{#1}}%
++    \else
++      \expandafter\gdef\expandafter\savedauthorgroup\expandafter{%
++        \savedauthorgroup\savedauthor{#1}}%
++    \fi
+   \else
+-    \checkenv\titlepage
+-    \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+-    {\secfonts\rm \leftline{#1}}%
++    \def\temp{\quotation}%
++    \ifx\thisenv\temp
++      \def\quotationauthor{#1}% printed in \Equotation.
++    \else
++      \checkenv\titlepage
++      \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
++      {\secfonts\rm \leftline{#1}}%
++    \fi
+   \fi
+ }
++% @maketitle
++{\obeylines
++\gdef\maketitle{%
++\titlepage
++\ifx\savedtitle\empty\else
++  \title \savedtitle
++  \ifx\savedsubtitlegroup\empty\else
++    \savedsubtitlegroup
++\fi\fi
++\ifx\savedauthorgroup\empty\else
++  \savedauthorgroup
++\fi
++% start verso page if either copying or publication text is given
++\ifx\copyingtext\relax
++  \ifx\publicationtext\relax\else
++    \page \vskip 0pt plus 1filll
++  \fi
++\else
++  \page \vskip 0pt plus 1filll
++\fi
++\ifx\publicationtext\relax\else
++  \insertpublication
++  \sp 1
++\fi
++\ifx\copyingtext\relax\else
++  \insertcopying
++\fi
++\end titlepage
++}
++
++% \savedauthor{#1}, called with braces.  output an @author line.
++\gdef\savedauthor#1{%
++\author#1
++}
++
++% \savedsubtitle{#1}, called with braces.  output a @subtitle line.
++\gdef\savedsubtitle#1{%
++\subtitle#1
++}
++} % \obeylines
++
++% @documentinfo block
++\envdef\documentinfo{%
++}
++\def\Edocumentinfo{}%
++
+ % Set up page headings and footings.
+@@ -4611,7 +4796,7 @@ $$%
+ % Like \expandablevalue, but completely expandable (the \message in the
+ % definition above operates at the execution level of TeX).  Used when
+ % writing to auxiliary files, due to the expansion that \write does.
+-% If flag is undefined, pass through an unexpanded @value command: maybe it
++% If flag is undefined, pass through an unexpanded @value command: maybe it 
+ % will be set by the time it is read back in.
+ %
+ % NB flag names containing - or _ may not work here.
+@@ -4635,7 +4820,7 @@ $$%
+ % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+ % with @set.
+-%
++% 
+ % To get the special treatment we need for `@end ifset,' we call
+ % \makecond and then redefine.
+ %
+@@ -4668,7 +4853,7 @@ $$%
+ % without the @) is in fact defined.  We can only feasibly check at the
+ % TeX level, so something like `mathcode' is going to considered
+ % defined even though it is not a Texinfo command.
+-%
++% 
+ \makecond{ifcommanddefined}
+ \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
+ %
+@@ -4774,7 +4959,7 @@ $$%
+ \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
+ \def\docodeindexxxx #1{\docind{\indexname}{#1}}
+-
++\f
+ % \definedummyword defines \#1 as \string\#1\space, thus effectively
+ % preventing its expansion.  This is used only for control words,
+ % not control letters, because the \space would be incorrect for
+@@ -4791,7 +4976,7 @@ $$%
+ \def\definedummyword  #1{\def#1{\string#1\space}}%
+ \def\definedummyletter#1{\def#1{\string#1}}%
+-% Used for the aux, toc and index files to prevent expansion of Texinfo
++% Used for the aux, toc and index files to prevent expansion of Texinfo 
+ % commands.  Most of the commands are controlled through the
+ % \ifdummies conditional.
+ %
+@@ -5065,8 +5250,8 @@ $$%
+   %
+   \uccode`\1=`\{ \uppercase{\def\{{1}}%
+   \uccode`\1=`\} \uppercase{\def\}{1}}%
+-  \let\lbracechar\{%
+-  \let\rbracechar\}%
++  \def\lbracechar##1{\{}%
++  \def\rbracechar##1{\}}%
+   %
+   %
+   % We need to get rid of all macros, leaving only the arguments (if present).
+@@ -5081,7 +5266,7 @@ $$%
+   \let\value\indexnofontsvalue
+ }
+-
++\f
+ % #1 is the index name, #2 is the entry text.
+@@ -5122,7 +5307,7 @@ $$%
+   \ifx\suffix\indexisfl\def\suffix{f1}\fi
+   % Open the file
+   \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
+-  % Using \immediate above here prevents an object entering into the current
++  % Using \immediate above here prevents an object entering into the current 
+   % box, which could confound checks such as those in \safewhatsit for
+   % preceding skips.
+   \typeout{Writing index file \jobname.\suffix}%
+@@ -5174,7 +5359,7 @@ $$%
+   \ifx\segment\isfinish
+   \else
+     %
+-    % Fully expand the segment, throwing away any @sortas directives, and
++    % Fully expand the segment, throwing away any @sortas directives, and 
+     % trim spaces.
+     \edef\trimmed{\segment}%
+     \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+@@ -5266,7 +5451,7 @@ $$%
+   \def\}{\rbracechar{}}%
+   \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
+   %
+-  % Split the entry into primary entry and any subentries, and get the index
++  % Split the entry into primary entry and any subentries, and get the index 
+   % sort key.
+   \splitindexentry\indextext
+   %
+@@ -5411,6 +5596,8 @@ $$%
+   \tolerance = 9500
+   \plainfrenchspacing
+   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
++  \let\entry\indexentry
++  \ifxetex\xetexpreauxfile\fi
+   %
+   % See comment in \requireopenindexfile.
+   \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
+@@ -5436,8 +5623,12 @@ $$%
+     \fi
+   \fi
+   \closein 1
++  \ifxetex\xetexpostauxfile\fi
+ \endgroup}
++% Checked in @bye
++\let\byeerror\relax
++
+ % If the index file starts with a backslash, forgo reading the index
+ % file altogether.  If somebody upgrades texinfo.tex they may still have
+ % old index files using \ as the escape character.  Reading this would
+@@ -5446,19 +5637,21 @@ $$%
+   \ifflagclear{txiindexescapeisbackslash}{%
+     \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
+       \ifflagclear{txiskipindexfileswithbackslash}{%
+-\errmessage{%
+-ERROR: A sorted index file in an obsolete format was skipped.
++        % Delay the error message until the very end to give a chance
++        % for the whole index to be output as input for texindex.
++        \global\def\byeerror{%
++ERROR: A sorted index file in an obsolete format was skipped.  
+ To fix this problem, please upgrade your version of 'texi2dvi'
+ or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
+-If you are using an old version of 'texindex' (part of the Texinfo
++If you are using an old version of 'texindex' (part of the Texinfo 
+ distribution), you may also need to upgrade to a newer version (at least 6.0).
+ You may be able to typeset the index if you run
+ 'texindex \jobname.\indexname' yourself.
+-You could also try setting the 'txiindexescapeisbackslash' flag by
++You could also try setting the 'txiindexescapeisbackslash' flag by 
+ running a command like
+-'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do
++'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do 
+ this, Texinfo will try to use index files in the old format.
+-If you continue to have problems, deleting the index files and starting again
++If you continue to have problems, deleting the index files and starting again 
+ might help (with 'rm \jobname.?? \jobname.??s')%
+ }%
+       }{%
+@@ -5466,7 +5659,9 @@ might help (with 'rm \jobname.?? \jobnam
+       }%
+     \else
+       \begindoublecolumns
++      \ifxetex\xetexpreauxfile\fi
+       \input \jobname.\indexname s
++      \ifxetex\xetexpostauxfile\fi
+       \enddoublecolumns
+     \fi
+   }{%
+@@ -5477,11 +5672,39 @@ might help (with 'rm \jobname.?? \jobnam
+     % should work because we (hopefully) don't otherwise use @ in index files.
+     %\catcode`\@=12\relax
+     \catcode`\@=0\relax
++    \ifxetex\xetexpreauxfile\fi
+     \input \jobname.\indexname s
++    \ifxetex\xetexpostauxfile\fi
+     \enddoublecolumns
+   }%
+ }
++\def\indexentry#1#2{%
++  \let\entrypagetarget\empty
++  \ifpdforxetex
++    % only link the index text to the page if no comma appears in the
++    % list of pages, i.e. there is only one page
++    \checkpagelistcomma{#2}\pagelistcomma
++    \expandafter\ifcase\pagelistcomma
++      \def\entrypagetarget{#2}%
++    \fi
++  \fi%
++  \entryinternal{#1}{#2}%
++}
++
++\def\checkpagelistcomma#1#2{%
++  \checkpagelistcommaxx#2#1,\finish
++}
++\def\checkpagelistcommaxx#1#2,#3\finish{%
++  \def\tmp{#3}%
++  \ifx\tmp\empty
++    \def#1{0\relax}
++  \else
++    \def#1{1\relax}
++  \fi
++}
++
++
+ % These macros are used by the sorted index file itself.
+ % Change them to control the appearance of the index.
+@@ -5518,7 +5741,6 @@ might help (with 'rm \jobname.?? \jobnam
+ \def\initial{%
+   \bgroup
+-  \initialglyphs
+   \initialx
+ }
+@@ -5531,7 +5753,7 @@ might help (with 'rm \jobname.?? \jobnam
+   % bottom of a column to reduce an increase in inter-line spacing.
+   \nobreak
+   \vskip 0pt plus 5\baselineskip
+-  \penalty -300
++  \penalty -300 
+   \vskip 0pt plus -5\baselineskip
+   %
+   % Typeset the initial.  Making this add up to a whole number of
+@@ -5541,7 +5763,10 @@ might help (with 'rm \jobname.?? \jobnam
+   %
+   % No shrink because it confuses \balancecolumns.
+   \vskip 1.67\baselineskip plus 1\baselineskip
+-  \leftline{\secfonts \kern-0.05em \secbf #1}%
++  \doindexinitialentry{#1}%
++  \initialglyphs
++  \leftline{%
++    \secfonts \kern-0.05em \secbf #1}%
+   % \secfonts is inside the argument of \leftline so that the change of
+   % \baselineskip will not affect any glue inserted before the vbox that
+   % \leftline creates.
+@@ -5551,6 +5776,28 @@ might help (with 'rm \jobname.?? \jobnam
+   \egroup % \initialglyphs
+ }
++\def\doindexinitialentry#1{%
++  \ifpdforxetex
++    \global\advance\idxinitialno by 1
++    \def\indexlbrace{\{}%
++    \def\indexrbrace{\}}%
++    \def\indexbackslash{\realbackslash}%
++    \def\indexatchar{\@}%
++    \writetocentry{idxinitial}{\asis #1}{IDX\the\idxinitialno}%
++    % The @asis removes a pair of braces around e.g. {@indexatchar} that
++    % are output by texindex.
++    %
++    \pdfmkdest{idx.\asis #1.IDX\the\idxinitialno}%
++  \fi
++}
++
++% No listing in TOC
++\def\idxinitialentry#1#2#3#4{}
++
++% For index initials.
++\newcount\idxinitialno \idxinitialno=1
++
++
+ \newdimen\entryrightmargin
+ \entryrightmargin=0pt
+@@ -5559,16 +5806,18 @@ might help (with 'rm \jobname.?? \jobnam
+ \newdimen\entrycontskip
+ \entrycontskip=1em
+-% for PDF output, whether to make the text of the entry a link to the page
+-% number.  set for @contents and @shortcontents where there is only one
+-% page number.
++% for PDF output, whether to make the text of the entry a link to the section.
++% set for @contents and @shortcontents.
+ \newif\iflinkentrytext
+-% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+-% then page number (#2) flushed to the right margin.  It is used for index
+-% and table of contents entries.  The paragraph is indented by \leftskip.
+-%
+-\def\entry{%
++% \entryinternal typesets a paragraph consisting of the text (#1), dot
++% leaders, and then page number (#2) flushed to the right margin.  It is
++% used for index and table of contents entries.  The paragraph is indented
++% by \leftskip.
++% For PDF output, if \linkentrytexttrue and \tocnodetarget is set, link text
++% to the referenced node.  Else if \entrypagetarget is set, link text to the
++% page.
++\def\entryinternal{%
+   \begingroup
+     %
+     % Start a new paragraph if necessary, so our assignments below can't
+@@ -5608,9 +5857,19 @@ might help (with 'rm \jobname.?? \jobnam
+     \global\setbox\boxA=\hbox\bgroup
+       \ifpdforxetex
+         \iflinkentrytext
+-          \pdflinkpage{#1}{\unhbox\boxA}%
++          \ifx\tocnodetarget\empty
++            \unhbox\boxA
++          \else
++            \startxreflink{\tocnodetarget}{}%
++            \unhbox\boxA
++            \endlink
++          \fi
+         \else
+-          \unhbox\boxA
++          \ifx\entrypagetarget\empty
++            \unhbox\boxA
++          \else
++            \pdflinkpage{\entrypagetarget}{\unhbox\boxA}%
++          \fi
+         \fi
+       \else
+         \unhbox\boxA
+@@ -5625,11 +5884,18 @@ might help (with 'rm \jobname.?? \jobnam
+         %
+         \null\nobreak\indexdotfill % Have leaders before the page number.
+         %
++        \hskip\skip\thinshrinkable
+         \ifpdforxetex
+-          \pdfgettoks#1.%
+-          \hskip\skip\thinshrinkable\the\toksA
++          \ifx\tocnodetarget\empty
++            \pdfgettoks#1.%
++            \the\toksA
++          \else
++            % Should just be a single page number in toc
++            \startxreflink{\tocnodetarget}{}%
++            #1\endlink
++          \fi
+         \else
+-          \hskip\skip\thinshrinkable #1%
++          #1%
+         \fi
+       \fi
+     \egroup % end \boxA
+@@ -5851,7 +6117,7 @@ might help (with 'rm \jobname.?? \jobnam
+ \newbox\balancedcolumns
+ \setbox\balancedcolumns=\vbox{shouldnt see this}%
+ %
+-% Only called for the last of the double column material.  \doublecolumnout
++% Only called for the last of the double column material.  \doublecolumnout 
+ % does the others.
+ \def\balancecolumns{%
+   \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
+@@ -5879,7 +6145,7 @@ might help (with 'rm \jobname.?? \jobnam
+     }%
+     % Now the left column is in box 1, and the right column in box 3.
+     %
+-    % Check whether the left column has come out higher than the page itself.
++    % Check whether the left column has come out higher than the page itself.  
+     % (Note that we have doubled \vsize for the double columns, so
+     % the actual height of the page is 0.5\vsize).
+     \ifdim2\ht1>\vsize
+@@ -6175,7 +6441,7 @@ might help (with 'rm \jobname.?? \jobnam
+ \let\top\unnumbered
+ % Sections.
+-%
++% 
+ \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+ \def\seczzz#1{%
+   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+@@ -6198,7 +6464,7 @@ might help (with 'rm \jobname.?? \jobnam
+ }
+ % Subsections.
+-%
++% 
+ % normally calls numberedsubseczzz:
+ \outer\parseargdef\numberedsubsec{\numhead2{#1}}
+ \def\numberedsubseczzz#1{%
+@@ -6222,7 +6488,7 @@ might help (with 'rm \jobname.?? \jobnam
+ }
+ % Subsubsections.
+-%
++% 
+ % normally numberedsubsubseczzz:
+ \outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
+ \def\numberedsubsubseczzz#1{%
+@@ -6275,6 +6541,10 @@ might help (with 'rm \jobname.?? \jobnam
+ \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+   \suppressfirstparagraphindent}
++% @xrefname - give text with printed name for linking to node and allow
++% referencing node, but do not print any heading.
++\parseargdef\xrefname{\donoderef{Yomitfromtoc}{#1}}%
++
+ % These macros generate a chapter, section, etc. heading only
+ % (including whitespace, linebreaking, etc. around it),
+ % given all the information in convenient, parsed form.
+@@ -6396,11 +6666,6 @@ might help (with 'rm \jobname.?? \jobnam
+     \chapfonts \rm
+     \let\footnote=\errfootnoteheading % give better error message
+     %
+-    % Have to define \currentsection before calling \donoderef, because the
+-    % xref code eventually uses it.  On the other hand, it has to be called
+-    % after \pchapsepmacro, or the headline will change too soon.
+-    \gdef\currentsection{#1}%
+-    %
+     % Only insert the separating space if we have a chapter/appendix
+     % number, and don't print the unnumbered ``number''.
+     \ifx\temptype\Ynothingkeyword
+@@ -6427,7 +6692,7 @@ might help (with 'rm \jobname.?? \jobnam
+     % been typeset.  If the destination for the pdf outline is after the
+     % text, then jumping from the outline may wind up with the text not
+     % being visible, for instance under high magnification.
+-    \donoderef{#2}%
++    \donoderef{#2}{#1}%
+     %
+     % Typeset the actual heading.
+     \nobreak % Avoid page breaks at the interline glue.
+@@ -6543,21 +6808,17 @@ might help (with 'rm \jobname.?? \jobnam
+     \ifx\temptype\Ynothingkeyword
+       \setbox0 = \hbox{}%
+       \def\toctype{unn}%
+-      \gdef\currentsection{#1}%
+     \else\ifx\temptype\Yomitfromtockeyword
+-      % for @headings -- no section number, don't include in toc,
+-      % and don't redefine \currentsection.
++      % for @headings -- no section number, don't include in toc.
+       \setbox0 = \hbox{}%
+       \def\toctype{omit}%
+       \let\sectionlevel=\empty
+     \else\ifx\temptype\Yappendixkeyword
+       \setbox0 = \hbox{#4\enspace}%
+       \def\toctype{app}%
+-      \gdef\currentsection{#1}%
+     \else
+       \setbox0 = \hbox{#4\enspace}%
+       \def\toctype{num}%
+-      \gdef\currentsection{#1}%
+     \fi\fi\fi
+     %
+     % Write the toc entry (before \donoderef).  See comments in \chapmacro.
+@@ -6565,7 +6826,7 @@ might help (with 'rm \jobname.?? \jobnam
+     %
+     % Write the node reference (= pdf destination for pdftex).
+     % Again, see comments in \chapmacro.
+-    \donoderef{#3}%
++    \donoderef{#3}{#1}%
+     %
+     % Interline glue will be inserted when the vbox is completed.
+     % That glue will be a valid breakpoint for the page, since it'll be
+@@ -6759,12 +7020,13 @@ might help (with 'rm \jobname.?? \jobnam
+ % Prepare to read what we've written to \tocfile.
+ %
+-\def\startcontents#1{%
++\def\startcontents#1#2{%
+   % If @setchapternewpage on, and @headings double, the contents should
+   % start on an odd page, unlike chapters.
+   \contentsalignmacro
+   \immediate\closeout\tocfile
+   %
++  #2%
+   % Don't need to put `Contents' or `Short Contents' in the headline.
+   % It is abundantly clear what they are.
+   \chapmacro{#1}{Yomitfromtoc}{}%
+@@ -6784,7 +7046,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % \raggedbottom in plain.tex hardcodes \topskip so override it
+ \catcode`\@=11
+-\def\raggedbottom{\advance\topskip by 0pt plus60pt \r@ggedbottomtrue}
++\def\raggedbottom{\advance\topskip by 0pt plus30pt \r@ggedbottomtrue}
+ \catcode`\@=\other
+ % redefined for the two-volume lispref.  We always output on
+@@ -6795,7 +7057,9 @@ might help (with 'rm \jobname.?? \jobnam
+ % Normal (long) toc.
+ %
+ \def\contents{%
+-  \startcontents{\putwordTOC}%
++  \startcontents{\putwordTOC}{\contentsmkdest}%
++    \ifxetex\xetexpreauxfile\fi
++    \penalty2 % mark beginning of contents
+     \openin 1 \tocreadfilename\space
+     \ifeof 1 \else
+       \findsecnowidths
+@@ -6807,13 +7071,18 @@ might help (with 'rm \jobname.?? \jobnam
+       \pdfmakeoutlines
+     \fi
+     \closein 1
++    \ifxetex\xetexpostauxfile\fi
+   \endgroup
+   \contentsendroman
+ }
++\def\contentsmkdest{%
++  \pdfmkdest{txi.CONTENTS}%
++}
++
+ % And just the chapters.
+ \def\summarycontents{%
+-  \startcontents{\putwordShortTOC}%
++  \startcontents{\putwordShortTOC}{}%
+     %
+     \let\partentry = \shortpartentry
+     \let\numchapentry = \shortchapentry
+@@ -6836,11 +7105,13 @@ might help (with 'rm \jobname.?? \jobnam
+     \let\numsubsubsecentry = \numsecentry
+     \let\appsubsubsecentry = \numsecentry
+     \let\unnsubsubsecentry = \numsecentry
++    \ifxetex\xetexpreauxfile\fi
+     \openin 1 \tocreadfilename\space
+     \ifeof 1 \else
+       \readtocfile
+     \fi
+     \closein 1
++    \ifxetex\xetexpostauxfile\fi
+     \vfill \eject
+     \contentsalignmacro % in case @setchapternewpage odd is in effect
+   \endgroup
+@@ -6881,36 +7152,45 @@ might help (with 'rm \jobname.?? \jobnam
+ %   #3 - level of section (e.g "chap", "sec")
+ %   #4 - page number
+-% Parts, in the main contents.  Replace the part number, which doesn't
+-% exist, with an empty box.  Let's hope all the numbers have the same width.
+-% Also ignore the page number, which is conventionally not printed.
+-\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}}
++% Parts, in the main contents.  Ignore the page number, which is
++% conventionally not printed.
+ \def\partentry#1#2#3#4{%
++  \ifnum\lastpenalty = 2
++    % use less space if at very first entry of contents
++    \vskip 1\baselineskip plus .33\baselineskip minus .25\baselineskip
++  \else
++    \vskip 2\baselineskip plus .66\baselineskip minus .5\baselineskip
++  \fi
+   % Add stretch and a bonus for breaking the page before the part heading.
+   % This reduces the chance of the page being broken immediately after the
+   % part heading, before a following chapter heading.
+-  \vskip 0pt plus 5\baselineskip
++  \vskip 0pt plus 3\baselineskip
+   \penalty-300
+-  \vskip 0pt plus -5\baselineskip
+-  \dochapentry{#1}{\numeralbox}{}%
++  \vskip 0pt plus -3\baselineskip
++  \begingroup
++    \secfonts \rm
++    \entryinternal{#1}{}%
++  \endgroup
++  \afterpartentrytrue
+ }
++\newif\ifafterpartentry
+ %
+ % Parts, in the short toc.
+ \def\shortpartentry#1#2#3#4{%
+   \penalty-300
+   \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip
+-  \shortchapentry{{\bf #1}}{\numeralbox}{}{}%
++  \tocentry{{\bf #1}}{}{}{}%
+ }
+ % Chapters, in the main contents.
+ \def\numchapentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthchap{#2}%
+-  \dochapentry{#1}{#2}{#4}%
++  \dochapentry{#1}{#2}{#3}{#4}%
+ }
+ % Chapters, in the short toc.
+ \def\shortchapentry#1#2#3#4{%
+-  \tocentry{#1}{\shortchaplabel{#2}}{#4}%
++  \tocentry{#1}{\shortchaplabel{#2}}{#3}{#4}%
+ }
+ % Appendices, in the main contents.
+@@ -6923,79 +7203,83 @@ might help (with 'rm \jobname.?? \jobnam
+ %
+ \def\appentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthchap{#2}%
+-  \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#4}%
++  \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#3}{#4}%
+ }
+ % Unnumbered chapters.
+-\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#4}}
+-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#4}}
++\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#3}{#4}}
++\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#3}{#4}}
+ % Sections.
+-\def\numsecentry#1#2#3#4{\dosecentry{#1}{#2}{#4}}
+-
+ \def\numsecentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthsec{#2}%
+-  \dosecentry{#1}{#2}{#4}%
++  \dosecentry{#1}{#2}{#3}{#4}%
+ }
+ \let\appsecentry=\numsecentry
+ \def\unnsecentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthsec{#2}%
+-  \dosecentry{#1}{}{#4}%
++  \dosecentry{#1}{}{#3}{#4}%
+ }
+ % Subsections.
+ \def\numsubsecentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthssec{#2}%
+-  \dosubsecentry{#1}{#2}{#4}%
++  \dosubsecentry{#1}{#2}{#3}{#4}%
+ }
+ \let\appsubsecentry=\numsubsecentry
+ \def\unnsubsecentry#1#2#3#4{%
+   \retrievesecnowidth\secnowidthssec{#2}%
+-  \dosubsecentry{#1}{}{#4}%
++  \dosubsecentry{#1}{}{#3}{#4}%
+ }
+ % And subsubsections.
+-\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#4}}
++\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#3}{#4}}
+ \let\appsubsubsecentry=\numsubsubsecentry
+-\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#4}}
++\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#3}{#4}}
+ % This parameter controls the indentation of the various levels.
+ % Same as \defaultparindent.
+ \newdimen\tocindent \tocindent = 15pt
+ % Now for the actual typesetting. In all these, #1 is the text, #2 is
+-% a section number if present, and #3 is the page number.
++% a section number if present, #3 is the node, and #4 is the page number.
+ %
+ % If the toc has to be broken over pages, we want it to be at chapters
+ % if at all possible; hence the \penalty.
+-\def\dochapentry#1#2#3{%
+-   \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
++\def\dochapentry#1#2#3#4{%
++   \ifafterpartentry
++     \afterpartentryfalse
++     \penalty5000
++   \else
++     \penalty-300
++   \fi
++   \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+    \begingroup
+      % Move the page numbers slightly to the right
+      \advance\entryrightmargin by -0.05em
+      \chapentryfonts
+      \extrasecnoskip=0.4em % separate chapter number more
+-     \tocentry{#1}{#2}{#3}%
++     \tocentry{#1}{#2}{#3}{#4}%
+    \endgroup
+    \nobreak\vskip .25\baselineskip plus.1\baselineskip
+ }
+-\def\dosecentry#1#2#3{\begingroup
++\def\dosecentry#1#2#3#4{\begingroup
+   \secnowidth=\secnowidthchap
+   \secentryfonts \leftskip=\tocindent
+-  \tocentry{#1}{#2}{#3}%
++  \tocentry{#1}{#2}{#3}{#4}%
+ \endgroup}
+-\def\dosubsecentry#1#2#3{\begingroup
++\def\dosubsecentry#1#2#3#4{\begingroup
+   \secnowidth=\secnowidthsec
+   \subsecentryfonts \leftskip=2\tocindent
+-  \tocentry{#1}{#2}{#3}%
++  \tocentry{#1}{#2}{#3}{#4}%
+ \endgroup}
+-\def\dosubsubsecentry#1#2#3{\begingroup
++\def\dosubsubsecentry#1#2#3#4{\begingroup
+   \secnowidth=\secnowidthssec
+   \subsubsecentryfonts \leftskip=3\tocindent
+-  \tocentry{#1}{#2}{#3}%
++  \tocentry{#1}{#2}{#3}{#4}%
+ \endgroup}
+ % Used for the maximum width of a section number so we can align
+@@ -7005,12 +7289,16 @@ might help (with 'rm \jobname.?? \jobnam
+ \newdimen\extrasecnoskip
+ \extrasecnoskip=0pt
+-% \tocentry{TITLE}{SEC NO}{PAGE}
++\let\tocnodetarget\empty
++\let\entrypagetarget\empty
++
++% \tocentry{TITLE}{SEC NO}{NODE}{PAGE}
+ %
+-\def\tocentry#1#2#3{%
++\def\tocentry#1#2#3#4{%
++  \def\tocnodetarget{#3}%
+   \def\secno{#2}%
+   \ifx\empty\secno
+-    \entry{#1}{#3}%
++    \entryinternal{#1}{#4}%
+   \else
+     \ifdim 0pt=\secnowidth
+       \setbox0=\hbox{#2\hskip\labelspace\hskip\extrasecnoskip}%
+@@ -7021,7 +7309,7 @@ might help (with 'rm \jobname.?? \jobnam
+         #2\hskip\labelspace\hskip\extrasecnoskip\hfill}%
+     \fi
+     \entrycontskip=\wd0
+-    \entry{\box0 #1}{#3}%
++    \entryinternal{\box0 #1}{#4}%
+   \fi
+ }
+ \newdimen\labelspace
+@@ -7406,7 +7694,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % @indentedblock is like @quotation, but indents only on the left and
+ % has no optional argument.
+-%
++% 
+ \makedispenvdef{indentedblock}{\indentedblockstart}
+ %
+ \def\indentedblockstart{%
+@@ -7594,6 +7882,7 @@ might help (with 'rm \jobname.?? \jobnam
+ {\catcode`\ =\other
+ \gdef\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+ }
++\let\copyingtext\relax
+ \def\insertcopying{%
+   \begingroup
+@@ -7602,6 +7891,18 @@ might help (with 'rm \jobname.?? \jobnam
+   \endgroup
+ }
++\def\publication{\checkenv{}\begingroup\macrobodyctxt\dopublication}
++{\catcode`\ =\other
++\gdef\dopublication#1@end publication{\endgroup\def\publicationtext{#1}}
++}
++\let\publicationtext\relax
++
++\def\insertpublication{%
++  \begingroup
++    \parindent = 0pt  % paragraph indentation looks wrong on title page
++    \scanexp\publicationtext
++  \endgroup
++}
+ \message{defuns,}
+ % @defun etc.
+@@ -7720,7 +8021,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % @deftypefnnewline on|off says whether the return type of typed functions
+ % are printed on their own line.  This affects @deftypefn, @deftypefun,
+ % @deftypeop, and @deftypemethod.
+-%
++% 
+ \parseargdef\deftypefnnewline{%
+   \def\temp{#1}%
+   \ifx\temp\onword
+@@ -7890,7 +8191,7 @@ might help (with 'rm \jobname.?? \jobnam
+       \tclose{\temp}% typeset the return type
+       \ifrettypeownline
+         % put return type on its own line; prohibit line break following:
+-        \hfil\vadjust{\nobreak}\break
++        \hfil\vadjust{\nobreak}\break  
+       \else
+         \space  % type on same line, so just followed by a space
+       \fi
+@@ -7901,7 +8202,7 @@ might help (with 'rm \jobname.?? \jobnam
+     {\rm\enskip}% hskip 0.5 em of \rmfont
+   }{}%
+   %
+-  \boldbrax
++  \parenbrackglyphs
+   % arguments will be output next, if any.
+ }
+@@ -7911,7 +8212,10 @@ might help (with 'rm \jobname.?? \jobnam
+     \def\^^M{}% for line continuation
+     \df \ifdoingtypefn \tt \else \sl \fi
+     \ifflagclear{txicodevaristt}{}%
+-       {\def\var##1{{\setregularquotes \ttsl ##1}}}%
++       % use \ttsl for @var in both @def* and @deftype*.
++       % the kern prevents an italic correction at end, which appears
++       % too much for ttsl.
++       {\def\var##1{{\setregularquotes \ttsl ##1\kern 0pt }}}%
+     #1%
+   \egroup
+ }
+@@ -7928,8 +8232,9 @@ might help (with 'rm \jobname.?? \jobnam
+ \let\lparen = ( \let\rparen = )
+ % Be sure that we always have a definition for `(', etc.  For example,
+-% if the fn name has parens in it, \boldbrax will not be in effect yet,
+-% so TeX would otherwise complain about undefined control sequence.
++% if the fn name has parens in it, \parenbrackglyphs will not be in
++% effect yet, so TeX would otherwise complain about undefined control
++% sequence.
+ {
+   \activeparens
+   \gdef\defcharsdefault{%
+@@ -7939,49 +8244,28 @@ might help (with 'rm \jobname.?? \jobnam
+   }
+   \globaldefs=1 \defcharsdefault
+-  \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
++  \gdef\parenbrackglyphs{\let(=\opnr\let)=\cpnr\let[=\lbrb\let]=\rbrb}
+   \gdef\magicamp{\let&=\amprm}
+ }
+ \let\ampchar\&
+-\newcount\parencount
+-
+-% If we encounter &foo, then turn on ()-hacking afterwards
+-\newif\ifampseen
+-\def\amprm#1 {\ampseentrue{\rm\&#1 }}
+-
+-\def\parenfont{%
+-  \ifampseen
+-    % At the first level, print parens in roman,
+-    % otherwise use the default font.
+-    \ifnum \parencount=1 \rm \fi
+-  \else
+-    % The \sf parens (in \boldbrax) actually are a little bolder than
+-    % the contained text.  This is especially needed for [ and ] .
+-    \sf
+-  \fi
+-}
+-\def\infirstlevel#1{%
+-  \ifampseen
+-    \ifnum\parencount=1
+-      #1%
+-    \fi
+-  \fi
+-}
+-\def\bfafterword#1 {#1 \bf}
++\def\amprm#1 {{\rm\&#1 }}
++\newcount\parencount
++% opening and closing parentheses in roman font
+ \def\opnr{%
++  \ptexslash % italic correction
+   \global\advance\parencount by 1
+-  {\parenfont(}%
+-  \infirstlevel \bfafterword
++  {\sf(}%
+ }
+-\def\clnr{%
+-  {\parenfont)}%
+-  \infirstlevel \sl
++\def\cpnr{%
++  \ptexslash % italic correction
++  {\sf)}%
+   \global\advance\parencount by -1
+ }
+ \newcount\brackcount
++% left and right square brackets in bold font
+ \def\lbrb{%
+   \global\advance\brackcount by 1
+   {\bf[}%
+@@ -8023,24 +8307,17 @@ might help (with 'rm \jobname.?? \jobnam
+   }
+ \fi
+-\let\E=\expandafter
+-
+ % Used at the time of macro expansion.
+ % Argument is macro body with arguments substituted
+ \def\scanmacro#1{%
+   \newlinechar`\^^M
+-  % expand the expansion of \eatleadingcr twice to maybe remove a leading
+-  % newline (and \else and \fi tokens), then call \eatspaces on the result.
+-  \def\xeatspaces##1{%
+-    \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1%
+-  }}%
+-  \def\xempty##1{}%
++  \def\xeatspaces##1{\eatleadingcrthen\eatspaces{##1}}%
+   %
+   % Process the macro body under the current catcode regime.
+   \scantokens{#1@comment}%
+   %
+   % The \comment is to remove the \newlinechar added by \scantokens, and
+-  % can be noticed by \parsearg.  Note \c isn't used because this means cedilla
++  % can be noticed by \parsearg.  Note \c isn't used because this means cedilla 
+   % in math mode.
+ }
+@@ -8087,10 +8364,12 @@ might help (with 'rm \jobname.?? \jobnam
+ \unbrace{\gdef\trim@@@ #1 } #2@{#1}
+ }
+-{\catcode`\^^M=\other%
+-\gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}%
+-% Warning: this won't work for a delimited argument
+-% or for an empty argument
++% Trim a single leading ^^M off a string, then call #1
++{\catcode`\^^M=\active \catcode`\Q=3%
++\gdef\eatleadingcrthen #1#2{\eatlcra #1Q#2Q^^MQ}%
++\gdef\eatlcra #1#2Q^^M{\eatlcrb #1#2Q}%
++\gdef\eatlcrb #1Q#2Q#3Q{#1{#2}}%
++}
+ % Trim a single trailing ^^M off a string.
+ {\catcode`\^^M=\other \catcode`\Q=3%
+@@ -8226,6 +8505,10 @@ might help (with 'rm \jobname.?? \jobnam
+ % <parameter list> is #, then the preceding argument is delimited by
+ % an opening brace, and that opening brace is not consumed.
++% Make @ a letter, so that we can make private-to-Texinfo macro names.
++\edef\texiatcatcode{\the\catcode`\@}
++\catcode `@=11\relax
++
+ % Parse the optional {params} list to @macro or @rmacro.
+ % Set \paramno to the number of arguments,
+ % and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a
+@@ -8233,19 +8516,18 @@ might help (with 'rm \jobname.?? \jobnam
+ % list to some hook where the argument is to be expanded.  If there are
+ % less than 10 arguments that hook is to be replaced by ##N where N
+ % is the position in that list, that is to say the macro arguments are to be
+-% defined `a la TeX in the macro body.
++% defined `a la TeX in the macro body.  
+ %
+ % That gets used by \mbodybackslash (above).
+ %
+ % If there are 10 or more arguments, a different technique is used: see
+-% \parsemmanyargdef.
++% \parsemmanyargdef@@.
+ %
+ \def\parsemargdef#1;{%
+   \paramno=0\def\paramlist{}%
+   \let\hash\relax
+   % \hash is redefined to `#' later to get it into definitions
+   \let\xeatspaces\relax
+-  \let\xempty\relax
+   \parsemargdefxxx#1,;,%
+   \ifnum\paramno<10\relax\else
+     \paramno0\relax
+@@ -8257,29 +8539,25 @@ might help (with 'rm \jobname.?? \jobnam
+   \else \let\next=\parsemargdefxxx
+     \advance\paramno by 1
+     \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+-        {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}%
++        {\xeatspaces{\hash\the\paramno}}%
+     \edef\paramlist{\paramlist\hash\the\paramno,}%
+   \fi\next}
+-% the \xempty{} is to give \eatleadingcr an argument in the case of an
+-% empty macro argument.
+ % \parsemacbody, \parsermacbody
+ %
+ % Read recursive and nonrecursive macro bodies. (They're different since
+ % rec and nonrec macros end differently.)
+-%
++% 
+ % We are in \macrobodyctxt, and the \xdef causes backslashes in the macro
+ % body to be transformed.
+ % Set \macrobody to the body of the macro, and call \macrodef.
+ %
++\catcode `\@\texiatcatcode
+ {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{%
+ \xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
+ {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{%
+ \xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
+-
+-% Make @ a letter, so that we can make private-to-Texinfo macro names.
+-\edef\texiatcatcode{\the\catcode`\@}
+-\catcode `@=11\relax
++\catcode `\@=11\relax
+ %%%%%%%%%%%%%% Code for > 10 arguments only   %%%%%%%%%%%%%%%%%%
+@@ -8302,7 +8580,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % twice the \macarg.BLAH macros does not cost too much processing power.
+ \def\parsemmanyargdef@@#1,{%
+   \if#1;\let\next=\relax
+-  \else
++  \else 
+     \let\next=\parsemmanyargdef@@
+     \edef\tempb{\eatspaces{#1}}%
+     \expandafter\def\expandafter\tempa
+@@ -8387,7 +8665,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % Replace arguments by their values in the macro body, and place the result
+ % in macro \@tempa.
+-%
++% 
+ \def\macvalstoargs@{%
+   %  To do this we use the property that token registers that are \the'ed
+   % within an \edef  expand only once. So we are going to place all argument
+@@ -8411,9 +8689,9 @@ might help (with 'rm \jobname.?? \jobnam
+   \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+   }
+-% Define the named-macro outside of this group and then close this group.
+-%
+-\def\macargexpandinbody@{%
++% Define the named-macro outside of this group and then close this group. 
++% 
++\def\macargexpandinbody@{% 
+   \expandafter
+   \endgroup
+   \macargdeflist@
+@@ -8451,7 +8729,7 @@ might help (with 'rm \jobname.?? \jobnam
+ }
+ % Trailing missing arguments are set to empty.
+-%
++% 
+ \def\setemptyargvalues@{%
+   \ifx\paramlist\nilm@
+     \let\next\macargexpandinbody@
+@@ -8511,7 +8789,7 @@ might help (with 'rm \jobname.?? \jobnam
+     \expandafter\xdef\csname\the\macname\endcsname{%
+       \begingroup
+         \noexpand\spaceisspace
+-        \noexpand\endlineisspace
++        \noexpand\ignoreactivenewline
+         \noexpand\expandafter % skip any whitespace after the macro name.
+         \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+     \expandafter\xdef\csname\the\macname @@@\endcsname{%
+@@ -8529,7 +8807,7 @@ might help (with 'rm \jobname.?? \jobnam
+   \else % at most 9
+     \ifnum\paramno<10\relax
+       % @MACNAME sets the context for reading the macro argument
+-      % @MACNAME@@ gets the argument, processes backslashes and appends a
++      % @MACNAME@@ gets the argument, processes backslashes and appends a 
+       % comma.
+       % @MACNAME@@@ removes braces surrounding the argument list.
+       % @MACNAME@@@@ scans the macro body with arguments substituted.
+@@ -8540,15 +8818,13 @@ might help (with 'rm \jobname.?? \jobnam
+         \noexpand\expandafter
+         \expandafter\noexpand\csname\the\macname @@\endcsname}%
+       \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+-          \noexpand\passargtomacro
+-          \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
++        \noexpand\passargtomacro
++        \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
+       \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+-          \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
+-      \expandafter\expandafter
+-      \expandafter\xdef
+-      \expandafter\expandafter
+-        \csname\the\macname @@@@\endcsname\paramlist{%
+-          \endgroup\noexpand\scanmacro{\macrobody}}%
++        \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
++      \expandaftergroup{\expandafter\xdef\csname\the\macname @@@@\endcsname}%
++                       \paramlist{%
++        \endgroup\noexpand\scanmacro{\macrobody}}%
+     \else % 10 or more:
+       \expandafter\xdef\csname\the\macname\endcsname{%
+         \noexpand\getargvals@{\the\macname}{\argl}%
+@@ -8560,6 +8836,16 @@ might help (with 'rm \jobname.?? \jobnam
+ \catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes
++% utility definition to avoid excessive use of \expandafter.  call
++% as \expandaftergroup{CONTENT}\WORD to expand \WORD exactly once and remove
++% braces around CONTENT.
++\def\expandaftergroup#1#2{%
++  \expandafter\expandaftergroupx\expandafter{#2}{#1}%
++}
++\def\expandaftergroupx#1#2{%
++  #2#1%
++}
++
+ \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+@@ -8573,11 +8859,11 @@ might help (with 'rm \jobname.?? \jobnam
+ % Call #1 with a list of tokens #2, with any doubled backslashes in #2
+ % compressed to one.
+ %
+-% This implementation works by expansion, and not execution (so we cannot use
+-% \def or similar).  This reduces the risk of this failing in contexts where
+-% complete expansion is done with no execution (for example, in writing out to
++% This implementation works by expansion, and not execution (so we cannot use 
++% \def or similar).  This reduces the risk of this failing in contexts where 
++% complete expansion is done with no execution (for example, in writing out to 
+ % an auxiliary file for an index entry).
+-%
++% 
+ % State is kept in the input stream: the argument passed to
+ % @look_ahead, @gobble_and_check_finish and @add_segment is
+ %
+@@ -8599,11 +8885,11 @@ might help (with 'rm \jobname.?? \jobnam
+ % #3 - NEXT_TOKEN
+ % #4 used to look ahead
+ %
+-% If the next token is not a backslash, process the rest of the argument;
++% If the next token is not a backslash, process the rest of the argument; 
+ % otherwise, remove the next token.
+ @gdef@look_ahead#1!#2#3#4{%
+   @ifx#4\%
+-   @expandafter@gobble_and_check_finish
++   @expandafter@gobble_and_check_finish 
+   @else
+    @expandafter@add_segment
+   @fi#1!{#2}#4#4%
+@@ -8627,9 +8913,9 @@ might help (with 'rm \jobname.?? \jobnam
+ % #3 - NEXT_TOKEN
+ % #4 is input stream until next backslash
+ %
+-% Input stream is either at the start of the argument, or just after a
+-% backslash sequence, either a lone backslash, or a doubled backslash.
+-% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
++% Input stream is either at the start of the argument, or just after a 
++% backslash sequence, either a lone backslash, or a doubled backslash.  
++% NEXT_TOKEN contains the first token in the input stream: if it is \finish, 
+ % finish; otherwise, append to ARG_RESULT the segment of the argument up until
+ % the next backslash.  PENDING_BACKSLASH contains a backslash to represent
+ % a backslash just before the start of the input stream that has not been
+@@ -8641,13 +8927,13 @@ might help (with 'rm \jobname.?? \jobnam
+   % append the pending backslash to the result, followed by the next segment
+   @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
+   % this @fi is discarded by @look_ahead.
+-  % we can't get rid of it with \expandafter because we don't know how
++  % we can't get rid of it with \expandafter because we don't know how 
+   % long #4 is.
+ }
+ % #1 - THE_MACRO
+ % #2 - ARG_RESULT
+-% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
++% #3 discards the res of the conditional in @add_segment, and @is_fi ends the 
+ % conditional.
+ @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
+@@ -8659,7 +8945,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % for reading the argument (slightly different in the two cases).  Then,
+ % to read the argument, in the whole-line case, it then calls the regular
+ % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
+-%
++% 
+ \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+ \def\braceorlinexxx{%
+   \ifx\nchar\bgroup
+@@ -8729,9 +9015,8 @@ might help (with 'rm \jobname.?? \jobnam
+     \expandafter\noexpand
+     \csname\the\macname @@@\endcsname##1\noexpand\endlinemacro
+   }
+-  \expandafter\expandafter
+-  \expandafter\xdef
+-  \expandafter\expandafter\csname\the\macname @@@\endcsname\paramlist{%
++  \expandaftergroup{\expandafter\xdef\csname\the\macname @@@\endcsname}%
++                     \paramlist{%
+     \newlinechar=13 % split \macrobody into lines
+     \noexpand\scantokens{\macrobody}%
+   }
+@@ -8782,7 +9067,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % Used so that the @top node doesn't have to be wrapped in an @ifnottex
+ % conditional.
+-% \doignore goes to more effort to skip nested conditionals but we don't need
++% \doignore goes to more effort to skip nested conditionals but we don't need 
+ % that here.
+ \def\omittopnode{%
+    \ifx\lastnode\wordTop
+@@ -8806,14 +9091,19 @@ might help (with 'rm \jobname.?? \jobnam
+ \let\lastnode=\empty
+ % Write a cross-reference definition for the current node.  #1 is the
+-% type (Ynumbered, Yappendix, Ynothing).
++% type (Ynumbered, Yappendix, Ynothing).  #2 is the section title.
+ %
+-\def\donoderef#1{%
++\def\donoderef#1#2{%
+   \ifx\lastnode\empty\else
+-    \setref{\lastnode}{#1}%
++    \setref{\lastnode}{#1}{#2}%
+     \global\let\lastnode=\empty
++    \setnodeseenonce
+   \fi
+ }
++\def\setnodeseenonce{
++  \global\nodeseentrue
++  \let\setnodeseenonce\relax
++}
+ % @nodedescription, @nodedescriptionblock - do nothing for TeX
+ \parseargdef\nodedescription{}
+@@ -8826,21 +9116,28 @@ might help (with 'rm \jobname.?? \jobnam
+ %
+ \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+ \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+-\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
++\def\anchor#1{%
++  \savesf \setref{#1}{Yanchor}{#1}\restoresf \ignorespaces
++}
++
++% @namedanchor{NAME, XREFNAME} -- define xref target at arbitrary point
++% with label text for cross-references to it.
++\def\namedanchor#1{\donamedanchor#1\finish}%
++\def\donamedanchor#1,#2\finish{%
++  \savesf \setref{#1}{Yanchor}{\ignorespaces #2\unskip}\restoresf \ignorespaces
++}
+-% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+-% anchor), which consists of three parts:
+-% 1) NAME-title - the current sectioning name taken from \currentsection,
+-%                 or the anchor name.
+-% 2) NAME-snt   - section number and type, passed as the SNT arg, or
+-%                 empty for anchors.
++% \setref{NAME}{SNT}{TITLE} defines a cross-reference point NAME (a node
++% or an anchor), which consists of three parts:
++% 1) NAME-title - the current sectioning name
++% 2) NAME-snt   - section number and type, passed as the SNT arg.
+ % 3) NAME-pg    - the page number.
+ %
+ % This is called from \donoderef, \anchor, and \dofloat.  In the case of
+ % floats, there is an additional part, which is not written here:
+ % 4) NAME-lof   - the text as it should appear in a @listoffloats.
+ %
+-\def\setref#1#2{%
++\def\setref#1#2#3{%
+   \pdfmkdest{#1}%
+   \iflinks
+     {%
+@@ -8852,7 +9149,7 @@ might help (with 'rm \jobname.?? \jobnam
+       \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+         ##1}{##2}}% these are parameters of \writexrdef
+       }%
+-      \toks0 = \expandafter{\currentsection}%
++      \toks0 = {#3}%
+       \immediate \writexrdef{title}{\the\toks0 }%
+       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+       \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
+@@ -8864,7 +9161,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % automatically in xrefs, if the third arg is not explicitly specified.
+ % This was provided as a "secret" @set xref-automatic-section-title
+ % variable, now it's official.
+-%
++% 
+ \parseargdef\xrefautomaticsectiontitle{%
+   \def\temp{#1}%
+   \ifx\temp\onword
+@@ -8880,7 +9177,7 @@ might help (with 'rm \jobname.?? \jobnam
+   \fi\fi
+ }
+-%
++% \f
+ % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
+ % the node name, #2 the name of the Info cross-reference, #3 the printed
+ % node name, #4 the name of the Info file, #5 the name of the printed
+@@ -8906,15 +9203,7 @@ might help (with 'rm \jobname.?? \jobnam
+   \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
+   %
+   \startxreflink{#1}{#4}%
+-  {%
+-    % Have to otherify everything special to allow the \csname to
+-    % include an _ in the xref name, etc.
+-    \indexnofonts
+-    \turnoffactive
+-    \def\value##1{##1}%
+-    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+-      \csname XR#1-title\endcsname
+-  }%
++  \getrefx{#1-title}\Xthisreftitle
+   %
+   % Float references are printed completely differently: "Figure 1.2"
+   % instead of "[somenode], p.3".  \iffloat distinguishes them by
+@@ -8947,21 +9236,23 @@ might help (with 'rm \jobname.?? \jobnam
+       % Cross-manual reference with a printed manual name.
+       %
+       \crossmanualxref{\cite{\printedmanual\unskip}}%
+-    %
+     \else\ifdim \wd\infofilenamebox > 0pt
+       % Cross-manual reference with only an info filename (arg 4), no
+       % printed manual name (arg 5).  This is essentially the same as
+       % the case above; we output the filename, since we have nothing else.
+       %
+       \crossmanualxref{\code{\infofilename\unskip}}%
+-    %
+     \else
+       % Reference within this manual.
+       %
+-      % Only output a following space if the -snt ref is nonempty, as the ref
+-      % will be empty for @unnumbered and @anchor.
+-      \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}%
+-      \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
++      % Only output a following space if the -snt ref is nonempty, as is
++      % the case for @unnumbered and @anchor.
++      \getrefx{#1-snt}\tmp
++      \ifx\tmp\empty\else
++        \ifx\tmp\Yanchor\else
++          \tmp\space
++        \fi
++      \fi
+       %
+       % output the `[mynode]' via the macro below so it can be overridden.
+       \xrefprintnodename\printedrefname
+@@ -9017,7 +9308,7 @@ might help (with 'rm \jobname.?? \jobnam
+         \else
+           % Otherwise just copy the Info node name.
+           \def\printedrefname{\ignorespaces #1}%
+-        \fi%
++        \fi
+       \fi
+     \fi
+   \fi
+@@ -9049,7 +9340,7 @@ might help (with 'rm \jobname.?? \jobnam
+        \ifnum\filenamelength>0
+          goto file{\the\filename.pdf} name{\pdfdestname}%
+        \else
+-         goto name{\pdfmkpgn{\pdfdestname}}%
++         goto name{\pdfdestname}%
+        \fi
+      \else % XeTeX
+        \ifnum\filenamelength>0
+@@ -9078,20 +9369,20 @@ might help (with 'rm \jobname.?? \jobnam
+   \space\putwordpage\tie\refx{#1-pg}}
+ % Output a cross-manual xref to #1.  Used just above (twice).
+-%
++% 
+ % Only include the text "Section ``foo'' in" if the foo is neither
+ % missing or Top.  Thus, @xref{,,,foo,The Foo Manual} outputs simply
+ % "see The Foo Manual", the idea being to refer to the whole manual.
+-%
++% 
+ % But, this being TeX, we can't easily compare our node name against the
+ % string "Top" while ignoring the possible spaces before and after in
+ % the input.  By adding the arbitrary 7sp below, we make it much less
+ % likely that a real node name would have the same width as "Top" (e.g.,
+ % in a monospaced font).  Hopefully it will never happen in practice.
+-%
++% 
+ % For the same basic reason, we retypeset the "Top" at every
+ % reference, since the current font is indeterminate.
+-%
++% 
+ \def\crossmanualxref#1{%
+   \setbox\toprefbox = \hbox{Top\kern7sp}%
+   \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+@@ -9129,6 +9420,7 @@ might help (with 'rm \jobname.?? \jobnam
+ %
+ \def\Ynothing{}
+ \def\Yomitfromtoc{}
++\def\Yanchor{\isanchor} \let\isanchor\relax
+ \def\Ynumbered{%
+   \ifnum\secno=0
+     \putwordChapter@tie \the\chapno
+@@ -9155,14 +9447,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % \refx{NAME} - reference a cross-reference string named NAME.
+ \def\refx#1{%
+-  \requireauxfile
+-  {%
+-    \indexnofonts
+-    \turnoffactive
+-    \def\value##1{##1}%
+-    \expandafter\global\expandafter\let\expandafter\thisrefX
+-      \csname XR#1\endcsname
+-  }%
++  \getrefx{#1}\thisrefX
+   \ifx\thisrefX\relax
+     % If not defined, say something at least.
+     \angleleft un\-de\-fined\angleright
+@@ -9183,9 +9468,20 @@ might help (with 'rm \jobname.?? \jobnam
+   \fi
+ }
+-% This is the macro invoked by entries in the aux file.  Define a control
+-% sequence for a cross-reference target (we prepend XR to the control sequence
+-% name to avoid collisions).  The value is the page number.  If this is a float
++% Set #2 to xref string #1
++\def\getrefx#1#2{%
++  \requireauxfile
++  {%
++    \indexnofonts
++    \turnoffactive
++    \def\value##1{##1}%
++    \expandafter\global\expandafter\let\expandafter#2\csname XR#1\endcsname
++  }%
++}
++
++% This is the macro invoked by entries in the aux file.  Define a control 
++% sequence for a cross-reference target (we prepend XR to the control sequence 
++% name to avoid collisions).  The value is the page number.  If this is a float 
+ % type, we have more work to do.
+ %
+ \def\xrdef#1#2{%
+@@ -9201,10 +9497,10 @@ might help (with 'rm \jobname.?? \jobnam
+   \bgroup
+     \expandafter\gdef\csname XR\safexrefname\endcsname{#2}%
+   \egroup
+-  % We put the \gdef inside a group to avoid the definitions building up on
+-  % TeX's save stack, which can cause it to run out of space for aux files with
++  % We put the \gdef inside a group to avoid the definitions building up on 
++  % TeX's save stack, which can cause it to run out of space for aux files with 
+   % thousands of lines.  \gdef doesn't use the save stack, but \csname does
+-  % when it defines an unknown control sequence as \relax.
++  % when it defines an unknown control sequence as \relax. 
+   %
+   % Was that xref control sequence that we just defined for a float?
+   \expandafter\iffloat\csname XR\safexrefname\endcsname
+@@ -9225,6 +9521,7 @@ might help (with 'rm \jobname.?? \jobnam
+     \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+       {\safexrefname}}%
+   \fi
++  \ignorespaces % ignore ends of line in aux file
+ }
+ % If working on a large document in chapters, it is convenient to
+@@ -9247,12 +9544,14 @@ might help (with 'rm \jobname.?? \jobnam
+ % Read the last existing aux file, if any.  No error if none exists.
+ %
+ \def\tryauxfile{%
++  \ifxetex\xetexpreauxfile\fi
+   \openin 1 \jobname.aux
+   \ifeof 1 \else
+     \readdatafile{aux}%
+     \global\havexrefstrue
+   \fi
+   \closein 1
++  \ifxetex\xetexpostauxfile\fi
+ }
+ \def\setupdatafile{%
+@@ -9335,7 +9634,10 @@ might help (with 'rm \jobname.?? \jobnam
+ % Auto-number footnotes.  Otherwise like plain.
+ \gdef\footnote{%
+   \global\advance\footnoteno by \@ne
+-  \edef\thisfootno{$^{\the\footnoteno}$}%
++  %
++  % Output for the footnote marker.  If we are immediately after another
++  % footnote, output a comma and small space first.
++  \edef\thisfootno{$^{\ifnum\lastpenalty=3 ,\mskip 1mu \fi\the\footnoteno}$}%
+   %
+   % In case the footnote comes at the end of a sentence, preserve the
+   % extra spacing after we do the footnote number.
+@@ -9344,19 +9646,25 @@ might help (with 'rm \jobname.?? \jobnam
+   %
+   % Remove inadvertent blank space before typesetting the footnote number.
+   \unskip
+-  \thisfootno\@sf
++  %
++  % \scriptspace is 0.5pt by default and gives excessive space before the
++  % comma if we have multiple footnote markers in a row.
++  \bgroup\scriptspace=0pt
++    \thisfootno\@sf
++  \egroup
+   \dofootnote
+ }%
+-% Don't bother with the trickery in plain.tex to not require the
+-% footnote text as a parameter.  Our footnotes don't need to be so general.
+-%
+-% Oh yes, they do; otherwise, @ifset (and anything else that uses
+-% \parseargline) fails inside footnotes because the tokens are fixed when
+-% the footnote is read.  --karl, 16nov96.
++% marker for immediately after a footnote marker
++\gdef\footnoteendmarker{\penalty3 }
++
++% Do not require the footnote text as a parameter; otherwise, @ifset
++% (and anything else that uses \parseargline) fails inside footnotes
++% because the tokens are fixed when the footnote is read.
+ %
+ \gdef\dofootnote{%
+   \insert\footins\bgroup
++  \aftergroup\footnoteendmarker
+   %
+   % Nested footnotes are not supported in TeX, that would take a lot
+   % more work.  (\startsavinginserts does not suffice.)
+@@ -9387,14 +9695,14 @@ might help (with 'rm \jobname.?? \jobnam
+   % Hang the footnote text off the number.  Use \everypar in case the
+   % footnote extends for more than one paragraph.
+   \everypar = {\hang}%
+-  \textindent{\thisfootno}%
++  \textindent{$^{\the\footnoteno}$}%
+   %
+   % Don't crash into the line above the footnote text.  Since this
+   % expands into a box, it must come within the paragraph, lest it
+   % provide a place where TeX can split the footnote.
+   \footstrut
+   %
+-  % Invoke rest of plain TeX footnote routine.
++  % Eat opening brace and invoke rest of plain TeX footnote routine.
+   \futurelet\next\fo@t
+ }
+ }%end \catcode `\@=11
+@@ -9551,7 +9859,9 @@ might help (with 'rm \jobname.?? \jobnam
+     % For pdfTeX and LuaTeX <= 0.80
+     \dopdfimage{#1}{#2}{#3}%
+   \else
+-    \ifx\XeTeXrevision\thisisundefined
++    \ifxetex
++      \doxeteximage{#1}{#2}{#3}%
++    \else
+       % For epsf.tex
+       % \epsfbox itself resets \epsf?size at each figure.
+       \setbox0 = \hbox{\ignorespaces #2}%
+@@ -9559,9 +9869,6 @@ might help (with 'rm \jobname.?? \jobnam
+       \setbox0 = \hbox{\ignorespaces #3}%
+         \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+       \epsfbox{#1.eps}%
+-    \else
+-      % For XeTeX
+-      \doxeteximage{#1}{#2}{#3}%
+     \fi
+   \fi
+   %
+@@ -9639,14 +9946,15 @@ might help (with 'rm \jobname.?? \jobnam
+       \global\advance\floatno by 1
+       %
+       {%
+-        % This magic value for \currentsection is output by \setref as the
+-        % XREFLABEL-title value.  \xrefX uses it to distinguish float
++        % This magic value for the third argument of \setref is output as
++        % the XREFLABEL-title value.  \xrefX uses it to distinguish float
+         % labels (which have a completely different output format) from
+         % node and anchor labels.  And \xrdef uses it to construct the
+         % lists of floats.
+         %
+-        \edef\currentsection{\floatmagic=\safefloattype}%
+-        \setref{\floatlabel}{Yfloat}%
++        \edef\tmp{\noexpand\setref{\noexpand\floatlabel}{Yfloat}%
++                  {\floatmagic=\safefloattype}}%
++        \tmp
+       }%
+     \fi
+     %
+@@ -9768,7 +10076,7 @@ might help (with 'rm \jobname.?? \jobnam
+ % #1 is the control sequence we are passed; we expand into a conditional
+ % which is true if #1 represents a float ref.  That is, the magic
+-% \currentsection value which we \setref above.
++% value which we passed to \setref above.
+ %
+ \def\iffloat#1{\expandafter\doiffloat#1==\finish}
+ %
+@@ -9825,6 +10133,7 @@ might help (with 'rm \jobname.?? \jobnam
+   \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+   %
+   % use the same \entry macro we use to generate the TOC and index.
++  \let\entry\entryinternal
+   \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+   \writeentry
+ }}
+@@ -9860,8 +10169,18 @@ might help (with 'rm \jobname.?? \jobnam
+ \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{%
+   \openin 1 txi-#1.tex
+   \ifeof 1
+-    \errhelp = \nolanghelp
+-    \errmessage{Cannot read language file txi-#1.tex}%
++    \def\lang{#1}%
++    \def\enword{en}%
++    \ifx\lang\enword
++      % for English only, keep on going rather than issuing a fatal error
++      % message, as txi-en.tex likely doesn't contain any changes from the
++      % defaults.  note that this is a problem if we already loaded another
++      % language file and want to switch back to English.
++      \message{Cannot read language file txi-#1.tex}%
++    \else
++      \errhelp = \nolanghelp
++      \errmessage{Cannot read language file txi-#1.tex}%
++    \fi
+   \else
+     \globaldefs = 1  % everything in the txi-LL files needs to persist
+     \input txi-#1.tex
+@@ -9907,35 +10226,40 @@ directory should work if nowhere else do
+ \newif\iftxinativeunicodecapable
+ \newif\iftxiusebytewiseio
+-\ifx\XeTeXrevision\thisisundefined
+-  \ifx\luatexversion\thisisundefined
+-    \txinativeunicodecapablefalse
+-    \txiusebytewiseiotrue
+-  \else
++\ifxetex
++  \txinativeunicodecapabletrue
++  \txiusebytewiseiofalse
++\else
++  \ifluatex
+     \txinativeunicodecapabletrue
+     \txiusebytewiseiofalse
++  \else
++    \txinativeunicodecapablefalse
++    \txiusebytewiseiotrue
+   \fi
+-\else
+-  \txinativeunicodecapabletrue
+-  \txiusebytewiseiofalse
+ \fi
++\let\xetexpreauxfile\relax
++\let\xetexpostauxfile\relax
++
+ % Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex
+ % for non-UTF-8 (byte-wise) encodings.
+ %
+ \def\setbytewiseio{%
+-  \ifx\XeTeXrevision\thisisundefined
+-  \else
+-    \XeTeXdefaultencoding "bytes"  % For subsequent files to be read
+-    \XeTeXinputencoding "bytes"  % For document root file
+-    % Unfortunately, there seems to be no corresponding XeTeX command for
+-    % output encoding.  This is a problem for auxiliary index and TOC files.
+-    % The only solution would be perhaps to write out @U{...} sequences in
+-    % place of non-ASCII characters.
++  \ifxetex
++    % For document root file
++    \XeTeXinputencoding "bytes"
++    %
++    % Setting for subsequent files to be read with @include.
++    \XeTeXdefaultencoding "bytes"
++    %
++    % Use UTF-8 for reading auxiliary index and TOC files, which are
++    % always output in UTF-8 with XeTeX.
++    \def\xetexpreauxfile{\XeTeXdefaultencoding "UTF-8"}%
++    \def\xetexpostauxfile{\XeTeXdefaultencoding "bytes"}%
+   \fi
+-  \ifx\luatexversion\thisisundefined
+-  \else
++  \ifluatex
+     \directlua{
+     local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub
+     local function convert_char (char)
+@@ -10044,8 +10368,7 @@ directory should work if nowhere else do
+   \fi % lattwo
+   \fi % ascii
+   %
+-  \ifx\XeTeXrevision\thisisundefined
+-  \else
++  \ifxetex
+     \ifx \declaredencoding \utfeight
+     \else
+       \ifx \declaredencoding \ascii
+@@ -10328,11 +10651,15 @@ directory should work if nowhere else do
+ \gdef\UTFviiiDefined#1{%
+   \ifx #1\relax
+-    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
++    \ifutfviiidefinedwarning
++      \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
++    \fi
+   \else
+     \expandafter #1%
+   \fi
+ }
++\newif\ifutfviiidefinedwarning
++\utfviiidefinedwarningtrue
+ % Give non-ASCII bytes the active definitions for processing UTF-8 sequences
+ \begingroup
+@@ -10342,8 +10669,8 @@ directory should work if nowhere else do
+   % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp
+   % substituting ~ and $ with a character token of that value.
+-  \def\UTFviiiLoop{%
+-    \global\catcode\countUTFx\active
++  \gdef\UTFviiiLoop{%
++    \catcode\countUTFx\active
+     \uccode`\~\countUTFx
+     \uccode`\$\countUTFx
+     \uppercase\expandafter{\UTFviiiTmp}%
+@@ -10351,7 +10678,7 @@ directory should work if nowhere else do
+     \ifnum\countUTFx < \countUTFy
+       \expandafter\UTFviiiLoop
+     \fi}
+-
++  %
+   % For bytes other than the first in a UTF-8 sequence.  Not expected to
+   % be expanded except when writing to auxiliary files.
+   \countUTFx = "80
+@@ -10385,6 +10712,16 @@ directory should work if nowhere else do
+         \else\expandafter\UTFviiiFourOctets\expandafter$\fi
+         }}%
+   \UTFviiiLoop
++  %
++  % for pdftex only, used to expand ASCII to UTF-16BE.
++  \gdef\asciitounicode{%
++    \countUTFx = "20
++    \countUTFy = "80
++    \def\UTFviiiTmp{%
++      \def~{\nullbyte $}}%
++    \UTFviiiLoop
++  }
++  {\catcode0=11 \gdef\nullbyte{^^00}}%
+ \endgroup
+ \def\globallet{\global\let} % save some \expandafter's below
+@@ -10401,7 +10738,7 @@ directory should work if nowhere else do
+         \uppercase{.}
+       \endgroup
+     \else
+-      \errhelp = \EMsimple
++      \errhelp = \EMsimple    
+       \errmessage{Unicode character U+#1 not supported, sorry}%
+     \fi
+   \else
+@@ -10409,8 +10746,8 @@ directory should work if nowhere else do
+   \fi
+ }
+-% These macros are used here to construct the name of a control
+-% sequence to be defined.
++% These macros are used here to construct the names of macros
++% that expand to the definitions for UTF-8 sequences.
+ \def\UTFviiiTwoOctetsName#1#2{%
+   \csname u8:#1\string #2\endcsname}%
+ \def\UTFviiiThreeOctetsName#1#2#3{%
+@@ -10418,6 +10755,35 @@ directory should work if nowhere else do
+ \def\UTFviiiFourOctetsName#1#2#3#4{%
+   \csname u8:#1\string #2\string #3\string #4\endcsname}%
++% generate UTF-16 from codepoint
++\def\utfsixteentotoks#1#2{%
++  \countUTFz = "#2\relax
++  \ifnum \countUTFz > 65535
++    % doesn't work for codepoints > U+FFFF
++    % we don't define glyphs for any of these anyway, so it doesn't matter
++    #1={U+#2}%
++  \else
++    \countUTFx = \countUTFz
++    \divide\countUTFx by 256
++    \countUTFy = \countUTFx
++    \multiply\countUTFx by 256
++    \advance\countUTFz by -\countUTFx
++    \uccode`,=\countUTFy
++    \uccode`;=\countUTFz
++    \ifnum\countUTFy = 0
++      \uppercase{#1={\nullbyte\string;}}%
++    \else\ifnum\countUTFz = 0
++      \uppercase{#1={\string,\nullbyte}}%
++    \else
++      \uppercase{#1={\string,\string;}}%
++    \fi\fi
++    % NB \uppercase cannot insert a null byte
++  \fi
++}
++
++\newif\ifutfbytespdf
++\utfbytespdffalse
++
+ % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX),
+ % provide a definition macro to replace a Unicode character;
+ % this gets used by the @U command
+@@ -10434,19 +10800,23 @@ directory should work if nowhere else do
+     \countUTFz = "#1\relax
+     \begingroup
+       \parseXMLCharref
+-
+-      % Give \u8:... its definition.  The sequence of seven \expandafter's
+-      % expands after the \gdef three times, e.g.
+       %
++      % Completely expand \UTFviiiTmp, which looks like:
+       % 1.  \UTFviiTwoOctetsName B1 B2
+       % 2.  \csname u8:B1 \string B2 \endcsname
+       % 3.  \u8: B1 B2  (a single control sequence token)
++      \xdef\UTFviiiTmp{\UTFviiiTmp}%
+       %
+-      \expandafter\expandafter
+-      \expandafter\expandafter
+-      \expandafter\expandafter
+-      \expandafter\gdef       \UTFviiiTmp{#2}%
+-      %
++      \ifpdf
++        \toksA={#2}%
++        \utfsixteentotoks\toksB{#1}%
++        \expandafter\xdef\UTFviiiTmp{%
++          \noexpand\ifutfbytespdf\noexpand\utfbytes{\the\toksB}%
++          \noexpand\else\the\toksA\noexpand\fi}%
++      \else
++        \expandafter\gdef\UTFviiiTmp{#2}%
++      \fi
++      % 
+       \expandafter\ifx\csname uni:#1\endcsname \relax \else
+        \message{Internal error, already defined: #1}%
+       \fi
+@@ -10455,8 +10825,9 @@ directory should work if nowhere else do
+       \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
+     \endgroup}
+   %
+-  % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp
+-  % to the corresponding UTF-8 sequence.
++  % Given the value in \countUTFz as a Unicode code point, set
++  % \UTFviiiTmp to one of the \UTVviii*OctetsName macros followed by
++  % the corresponding UTF-8 sequence.
+   \gdef\parseXMLCharref{%
+     \ifnum\countUTFz < "20\relax
+       \errhelp = \EMsimple
+@@ -10485,7 +10856,7 @@ directory should work if nowhere else do
+     \divide\countUTFz by 64
+     \countUTFy = \countUTFz  % Save to be the future value of \countUTFz.
+     \multiply\countUTFz by 64
+-
++    
+     % \countUTFz is now \countUTFx with the last 5 bits cleared.  Subtract
+     % in order to get the last five bits.
+     \advance\countUTFx by -\countUTFz
+@@ -10515,12 +10886,22 @@ directory should work if nowhere else do
+   \catcode"#1=\other
+ }
++% Suppress ligature creation from adjacent characters.
++\ifluatex
++  % Braces do not suppress ligature creation in LuaTeX, e.g. in of{}fice
++  % to suppress the "ff" ligature.  Using a kern appears to be the only
++  % workaround.
++  \def\nolig{\kern0pt{}}
++\else
++  \def\nolig{{}}
++\fi
++
+ % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
+ % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
+ % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
+ % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
+ % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
+-%
++% 
+ % Many of our renditions are less than wonderful, and all the missing
+ % characters are available somewhere.  Loading the necessary fonts
+ % awaits user request.  We can't truly support Unicode without
+@@ -11132,8 +11513,8 @@ directory should work if nowhere else do
+   % Punctuation
+   \DeclareUnicodeCharacter{2013}{--}%
+   \DeclareUnicodeCharacter{2014}{---}%
+-  \DeclareUnicodeCharacter{2018}{\quoteleft{}}%
+-  \DeclareUnicodeCharacter{2019}{\quoteright{}}%
++  \DeclareUnicodeCharacter{2018}{\quoteleft\nolig}%
++  \DeclareUnicodeCharacter{2019}{\quoteright\nolig}%
+   \DeclareUnicodeCharacter{201A}{\quotesinglbase{}}%
+   \DeclareUnicodeCharacter{201C}{\quotedblleft{}}%
+   \DeclareUnicodeCharacter{201D}{\quotedblright{}}%
+@@ -11168,7 +11549,7 @@ directory should work if nowhere else do
+   \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}%
+   %
+   \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}%
+-  \DeclareUnicodeCharacter{2032}{\ensuremath\prime}%
++  \DeclareUnicodeCharacter{2032}{\ensuremath{^\prime}}%
+   \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}%
+   \DeclareUnicodeCharacter{2111}{\ensuremath\Im}%
+   \DeclareUnicodeCharacter{2113}{\ensuremath\ell}%
+@@ -11291,6 +11672,25 @@ directory should work if nowhere else do
+   %
+   \global\mathchardef\checkmark="1370% actually the square root sign
+   \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}%
++  %
++  % These are all the combining accents.  We need these empty definitions
++  % at present for the sake of PDF outlines.
++  \DeclareUnicodeCharacter{0300}{}%
++  \DeclareUnicodeCharacter{0301}{}%
++  \DeclareUnicodeCharacter{0302}{}%
++  \DeclareUnicodeCharacter{0303}{}%
++  \DeclareUnicodeCharacter{0305}{}%
++  \DeclareUnicodeCharacter{0306}{}%
++  \DeclareUnicodeCharacter{0307}{}%
++  \DeclareUnicodeCharacter{0308}{}%
++  \DeclareUnicodeCharacter{030A}{}%
++  \DeclareUnicodeCharacter{030B}{}%
++  \DeclareUnicodeCharacter{030C}{}%
++  \DeclareUnicodeCharacter{0323}{}%
++  \DeclareUnicodeCharacter{0327}{}%
++  \DeclareUnicodeCharacter{0328}{}%
++  \DeclareUnicodeCharacter{0331}{}%
++  \DeclareUnicodeCharacter{0361}{}%
+ }% end of \unicodechardefs
+ % UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command)
+@@ -11429,12 +11829,12 @@ directory should work if nowhere else do
+     \pdfhorigin = 1 true in
+     \pdfvorigin = 1 true in
+   \else
+-    \ifx\XeTeXrevision\thisisundefined
+-      \special{papersize=#8,#7}%
+-    \else
++    \ifxetex
+       \pdfpageheight #7\relax
+       \pdfpagewidth #8\relax
+       % XeTeX does not have \pdfhorigin and \pdfvorigin.
++    \else
++      \special{papersize=#8,#7}%
+     \fi
+   \fi
+   %
+@@ -11634,21 +12034,21 @@ directory should work if nowhere else do
+   #1#2#3=\countB\relax
+ }
+-\ifx\XeTeXrevision\thisisundefined
+-  \ifx\luatexversion\thisisundefined
++\ifxetex % XeTeX
++  \mtsetprotcode\textrm
++  \def\mtfontexpand#1{}
++\else
++  \ifluatex % LuaTeX
++    \mtsetprotcode\textrm
++    \def\mtfontexpand#1{\expandglyphsinfont#1 20 20 1\relax}
++  \else
+     \ifpdf % pdfTeX
+       \mtsetprotcode\textrm
+       \def\mtfontexpand#1{\pdffontexpand#1 20 20 1 autoexpand\relax}
+     \else % TeX
+       \def\mtfontexpand#1{}
+     \fi
+-  \else % LuaTeX
+-    \mtsetprotcode\textrm
+-    \def\mtfontexpand#1{\expandglyphsinfont#1 20 20 1\relax}
+   \fi
+-\else % XeTeX
+-  \mtsetprotcode\textrm
+-  \def\mtfontexpand#1{}
+ \fi
+@@ -11657,18 +12057,18 @@ directory should work if nowhere else do
+ \def\microtypeON{%
+   \microtypetrue
+   %
+-  \ifx\XeTeXrevision\thisisundefined
+-    \ifx\luatexversion\thisisundefined
++  \ifxetex % XeTeX
++    \XeTeXprotrudechars=2
++  \else
++    \ifluatex % LuaTeX
++      \adjustspacing=2
++      \protrudechars=2
++    \else
+       \ifpdf % pdfTeX
+         \pdfadjustspacing=2
+         \pdfprotrudechars=2
+       \fi
+-    \else % LuaTeX
+-      \adjustspacing=2
+-      \protrudechars=2
+     \fi
+-  \else % XeTeX
+-    \XeTeXprotrudechars=2
+   \fi
+   %
+   \mtfontexpand\textrm
+@@ -11679,18 +12079,18 @@ directory should work if nowhere else do
+ \def\microtypeOFF{%
+   \microtypefalse
+   %
+-  \ifx\XeTeXrevision\thisisundefined
+-    \ifx\luatexversion\thisisundefined
++  \ifxetex % XeTeX
++    \XeTeXprotrudechars=0
++  \else
++    \ifluatex % LuaTeX
++      \adjustspacing=0
++      \protrudechars=0
++    \else
+       \ifpdf % pdfTeX
+         \pdfadjustspacing=0
+         \pdfprotrudechars=0
+       \fi
+-    \else % LuaTeX
+-      \adjustspacing=0
+-      \protrudechars=0
+     \fi
+-  \else % XeTeX
+-    \XeTeXprotrudechars=0
+   \fi
+ }
+@@ -11765,7 +12165,7 @@ directory should work if nowhere else do
+ \def\texinfochars{%
+   \let< = \activeless
+   \let> = \activegtr
+-  \let~ = \activetilde
++  \let~ = \activetilde 
+   \let^ = \activehat
+   \setregularquotes
+   \let\b = \strong
+--- gcl27-2.7.1.orig/xgcl-2/Events.c
++++ gcl27-2.7.1/xgcl-2/Events.c
+@@ -26,202 +26,187 @@
+ #include <X11/Xlib.h>
+ /********* XKeyEvent functions *****/
+-
+-long  make_XKeyEvent (){
++long 
++make_XKeyEvent (void){
+           return ((long) calloc(1, sizeof(XKeyEvent)));
+ }
+-int  XKeyEvent_same_screen(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_same_screen (XKeyEvent* i)
+ {
+           return(i->same_screen);
+ }
+-void set_XKeyEvent_same_screen(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_same_screen (XKeyEvent *i, int j)
+ {
+           i->same_screen = j;
+ }
+-int  XKeyEvent_keycode(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_keycode (XKeyEvent *i)
+ {
+           return(i->keycode);
+ }
+-void set_XKeyEvent_keycode(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_keycode (XKeyEvent *i, int j)
+ {
+           i->keycode = j;
+ }
+-int  XKeyEvent_state(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_state (XKeyEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XKeyEvent_state(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_state (XKeyEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XKeyEvent_y_root(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_y_root (XKeyEvent *i)
+ {
+           return(i->y_root);
+ }
+-void set_XKeyEvent_y_root(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_y_root (XKeyEvent *i, int j)
+ {
+           i->y_root = j;
+ }
+-int  XKeyEvent_x_root(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_x_root (XKeyEvent *i)
+ {
+           return(i->x_root);
+ }
+-void set_XKeyEvent_x_root(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_x_root (XKeyEvent *i, int j)
+ {
+           i->x_root = j;
+ }
+-int  XKeyEvent_y(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_y (XKeyEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XKeyEvent_y(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_y (XKeyEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XKeyEvent_x(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_x (XKeyEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XKeyEvent_x(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_x (XKeyEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XKeyEvent_time(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_time (XKeyEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XKeyEvent_time(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_time (XKeyEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XKeyEvent_subwindow(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_subwindow (XKeyEvent *i)
+ {
+           return(i->subwindow);
+ }
+-void set_XKeyEvent_subwindow(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_subwindow (XKeyEvent *i, int j)
+ {
+           i->subwindow = j;
+ }
+-int  XKeyEvent_root(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_root (XKeyEvent *i)
+ {
+           return(i->root);
+ }
+-void set_XKeyEvent_root(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_root (XKeyEvent *i, int j)
+ {
+           i->root = j;
+ }
+-int  XKeyEvent_window(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_window (XKeyEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XKeyEvent_window(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_window (XKeyEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XKeyEvent_display(i)
+-XKeyEvent* i;
++long 
++XKeyEvent_display (XKeyEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XKeyEvent_display(i, j)
+-XKeyEvent* i;
+-long j;
++void 
++set_XKeyEvent_display (XKeyEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XKeyEvent_send_event(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_send_event (XKeyEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XKeyEvent_send_event(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_send_event (XKeyEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XKeyEvent_serial(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_serial (XKeyEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XKeyEvent_serial(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_serial (XKeyEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XKeyEvent_type(i)
+-XKeyEvent* i;
++int 
++XKeyEvent_type (XKeyEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XKeyEvent_type(i, j)
+-XKeyEvent* i;
+-int j;
++void 
++set_XKeyEvent_type (XKeyEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -229,201 +214,187 @@ int j;
+ /********* XButtonEvent functions *****/
+-long  make_XButtonEvent (){
++long 
++make_XButtonEvent (void){
+           return ((long) calloc(1, sizeof(XButtonEvent)));
+ }
+-int  XButtonEvent_same_screen(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_same_screen (XButtonEvent *i)
+ {
+           return(i->same_screen);
+ }
+-void set_XButtonEvent_same_screen(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_same_screen (XButtonEvent *i, int j)
+ {
+           i->same_screen = j;
+ }
+-int  XButtonEvent_button(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_button (XButtonEvent *i)
+ {
+           return(i->button);
+ }
+-void set_XButtonEvent_button(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_button (XButtonEvent *i, int j)
+ {
+           i->button = j;
+ }
+-int  XButtonEvent_state(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_state (XButtonEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XButtonEvent_state(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_state (XButtonEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XButtonEvent_y_root(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_y_root (XButtonEvent *i)
+ {
+           return(i->y_root);
+ }
+-void set_XButtonEvent_y_root(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_y_root (XButtonEvent *i, int j)
+ {
+           i->y_root = j;
+ }
+-int  XButtonEvent_x_root(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_x_root (XButtonEvent *i)
+ {
+           return(i->x_root);
+ }
+-void set_XButtonEvent_x_root(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_x_root (XButtonEvent *i, int j)
+ {
+           i->x_root = j;
+ }
+-int  XButtonEvent_y(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_y (XButtonEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XButtonEvent_y(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_y (XButtonEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XButtonEvent_x(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_x (XButtonEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XButtonEvent_x(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_x (XButtonEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XButtonEvent_time(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_time (XButtonEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XButtonEvent_time(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_time (XButtonEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XButtonEvent_subwindow(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_subwindow (XButtonEvent *i)
+ {
+           return(i->subwindow);
+ }
+-void set_XButtonEvent_subwindow(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_subwindow (XButtonEvent *i, int j)
+ {
+           i->subwindow = j;
+ }
+-int  XButtonEvent_root(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_root (XButtonEvent *i)
+ {
+           return(i->root);
+ }
+-void set_XButtonEvent_root(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_root (XButtonEvent *i, int j)
+ {
+           i->root = j;
+ }
+-int  XButtonEvent_window(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_window (XButtonEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XButtonEvent_window(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_window (XButtonEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XButtonEvent_display(i)
+-XButtonEvent* i;
++long 
++XButtonEvent_display (XButtonEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XButtonEvent_display(i, j)
+-XButtonEvent* i;
+-long j;
++void 
++set_XButtonEvent_display (XButtonEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XButtonEvent_send_event(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_send_event (XButtonEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XButtonEvent_send_event(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_send_event (XButtonEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XButtonEvent_serial(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_serial (XButtonEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XButtonEvent_serial(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_serial (XButtonEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XButtonEvent_type(i)
+-XButtonEvent* i;
++int 
++XButtonEvent_type (XButtonEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XButtonEvent_type(i, j)
+-XButtonEvent* i;
+-int j;
++void 
++set_XButtonEvent_type (XButtonEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -431,201 +402,187 @@ int j;
+ /********* XMotionEvent functions *****/
+-long  make_XMotionEvent (){
++long 
++make_XMotionEvent (void){
+           return ((long) calloc(1, sizeof(XMotionEvent)));
+ }
+-int  XMotionEvent_same_screen(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_same_screen (XMotionEvent *i)
+ {
+           return(i->same_screen);
+ }
+-void set_XMotionEvent_same_screen(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_same_screen (XMotionEvent *i, int j)
+ {
+           i->same_screen = j;
+ }
+-char XMotionEvent_is_hint(i)
+-XMotionEvent* i;
++char 
++XMotionEvent_is_hint (XMotionEvent *i)
+ {
+           return(i->is_hint);
+ }
+-void set_XMotionEvent_is_hint(i, j)
+-XMotionEvent* i;
+-char j;
++void 
++set_XMotionEvent_is_hint (XMotionEvent *i, int j)
+ {
+           i->is_hint = j;
+ }
+-int  XMotionEvent_state(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_state (XMotionEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XMotionEvent_state(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_state (XMotionEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XMotionEvent_y_root(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_y_root (XMotionEvent *i)
+ {
+           return(i->y_root);
+ }
+-void set_XMotionEvent_y_root(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_y_root (XMotionEvent *i, int j)
+ {
+           i->y_root = j;
+ }
+-int  XMotionEvent_x_root(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_x_root (XMotionEvent *i)
+ {
+           return(i->x_root);
+ }
+-void set_XMotionEvent_x_root(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_x_root (XMotionEvent *i, int j)
+ {
+           i->x_root = j;
+ }
+-int  XMotionEvent_y(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_y (XMotionEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XMotionEvent_y(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_y (XMotionEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XMotionEvent_x(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_x (XMotionEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XMotionEvent_x(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_x (XMotionEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XMotionEvent_time(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_time (XMotionEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XMotionEvent_time(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_time (XMotionEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XMotionEvent_subwindow(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_subwindow (XMotionEvent *i)
+ {
+           return(i->subwindow);
+ }
+-void set_XMotionEvent_subwindow(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_subwindow (XMotionEvent *i, int j)
+ {
+           i->subwindow = j;
+ }
+-int  XMotionEvent_root(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_root (XMotionEvent *i)
+ {
+           return(i->root);
+ }
+-void set_XMotionEvent_root(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_root (XMotionEvent *i, int j)
+ {
+           i->root = j;
+ }
+-int  XMotionEvent_window(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_window (XMotionEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XMotionEvent_window(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_window (XMotionEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XMotionEvent_display(i)
+-XMotionEvent* i;
++long 
++XMotionEvent_display (XMotionEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XMotionEvent_display(i, j)
+-XMotionEvent* i;
+-long j;
++void 
++set_XMotionEvent_display (XMotionEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XMotionEvent_send_event(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_send_event (XMotionEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XMotionEvent_send_event(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_send_event (XMotionEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XMotionEvent_serial(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_serial (XMotionEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XMotionEvent_serial(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_serial (XMotionEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XMotionEvent_type(i)
+-XMotionEvent* i;
++int 
++XMotionEvent_type (XMotionEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XMotionEvent_type(i, j)
+-XMotionEvent* i;
+-int j;
++void 
++set_XMotionEvent_type (XMotionEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -633,227 +590,211 @@ int j;
+ /********* XCrossingEvent functions *****/
+-long  make_XCrossingEvent (){
++long 
++make_XCrossingEvent (void){
+           return ((long) calloc(1, sizeof(XCrossingEvent)));
+ }
+-int  XCrossingEvent_state(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_state (XCrossingEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XCrossingEvent_state(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_state (XCrossingEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XCrossingEvent_focus(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_focus (XCrossingEvent *i)
+ {
+           return(i->focus);
+ }
+-void set_XCrossingEvent_focus(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_focus (XCrossingEvent *i, int j)
+ {
+           i->focus = j;
+ }
+-int  XCrossingEvent_same_screen(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_same_screen (XCrossingEvent *i)
+ {
+           return(i->same_screen);
+ }
+-void set_XCrossingEvent_same_screen(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_same_screen (XCrossingEvent *i, int j)
+ {
+           i->same_screen = j;
+ }
+-int  XCrossingEvent_detail(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_detail (XCrossingEvent *i)
+ {
+           return(i->detail);
+ }
+-void set_XCrossingEvent_detail(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_detail (XCrossingEvent *i, int j)
+ {
+           i->detail = j;
+ }
+-int  XCrossingEvent_mode(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_mode (XCrossingEvent *i)
+ {
+           return(i->mode);
+ }
+-void set_XCrossingEvent_mode(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_mode (XCrossingEvent *i, int j)
+ {
+           i->mode = j;
+ }
+-int  XCrossingEvent_y_root(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_y_root (XCrossingEvent *i)
+ {
+           return(i->y_root);
+ }
+-void set_XCrossingEvent_y_root(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_y_root (XCrossingEvent *i, int j)
+ {
+           i->y_root = j;
+ }
+-int  XCrossingEvent_x_root(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_x_root (XCrossingEvent *i)
+ {
+           return(i->x_root);
+ }
+-void set_XCrossingEvent_x_root(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_x_root (XCrossingEvent *i, int j)
+ {
+           i->x_root = j;
+ }
+-int  XCrossingEvent_y(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_y (XCrossingEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XCrossingEvent_y(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_y (XCrossingEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XCrossingEvent_x(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_x (XCrossingEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XCrossingEvent_x(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_x (XCrossingEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XCrossingEvent_time(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_time (XCrossingEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XCrossingEvent_time(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_time (XCrossingEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XCrossingEvent_subwindow(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_subwindow (XCrossingEvent *i)
+ {
+           return(i->subwindow);
+ }
+-void set_XCrossingEvent_subwindow(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_subwindow (XCrossingEvent *i, int j)
+ {
+           i->subwindow = j;
+ }
+-int  XCrossingEvent_root(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_root (XCrossingEvent *i)
+ {
+           return(i->root);
+ }
+-void set_XCrossingEvent_root(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_root (XCrossingEvent *i, int j)
+ {
+           i->root = j;
+ }
+-int  XCrossingEvent_window(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_window (XCrossingEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XCrossingEvent_window(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_window (XCrossingEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XCrossingEvent_display(i)
+-XCrossingEvent* i;
++long 
++XCrossingEvent_display (XCrossingEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XCrossingEvent_display(i, j)
+-XCrossingEvent* i;
+-long j;
++void 
++set_XCrossingEvent_display (XCrossingEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XCrossingEvent_send_event(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_send_event (XCrossingEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XCrossingEvent_send_event(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_send_event (XCrossingEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XCrossingEvent_serial(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_serial (XCrossingEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XCrossingEvent_serial(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_serial (XCrossingEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XCrossingEvent_type(i)
+-XCrossingEvent* i;
++int 
++XCrossingEvent_type (XCrossingEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XCrossingEvent_type(i, j)
+-XCrossingEvent* i;
+-int j;
++void 
++set_XCrossingEvent_type (XCrossingEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -861,97 +802,91 @@ int j;
+ /********* XFocusChangeEvent functions *****/
+-long  make_XFocusChangeEvent (){
++long 
++make_XFocusChangeEvent (void){
+           return ((long) calloc(1, sizeof(XFocusChangeEvent)));
+ }
+-int  XFocusChangeEvent_detail(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_detail (XFocusChangeEvent *i)
+ {
+           return(i->detail);
+ }
+-void set_XFocusChangeEvent_detail(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_detail (XFocusChangeEvent *i, int j)
+ {
+           i->detail = j;
+ }
+-int  XFocusChangeEvent_mode(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_mode (XFocusChangeEvent *i)
+ {
+           return(i->mode);
+ }
+-void set_XFocusChangeEvent_mode(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_mode (XFocusChangeEvent *i, int j)
+ {
+           i->mode = j;
+ }
+-int  XFocusChangeEvent_window(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_window (XFocusChangeEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XFocusChangeEvent_window(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_window (XFocusChangeEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XFocusChangeEvent_display(i)
+-XFocusChangeEvent* i;
++long 
++XFocusChangeEvent_display (XFocusChangeEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XFocusChangeEvent_display(i, j)
+-XFocusChangeEvent* i;
+-long j;
++void 
++set_XFocusChangeEvent_display (XFocusChangeEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XFocusChangeEvent_send_event(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_send_event (XFocusChangeEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XFocusChangeEvent_send_event(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_send_event (XFocusChangeEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XFocusChangeEvent_serial(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_serial (XFocusChangeEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XFocusChangeEvent_serial(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_serial (XFocusChangeEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XFocusChangeEvent_type(i)
+-XFocusChangeEvent* i;
++int 
++XFocusChangeEvent_type (XFocusChangeEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XFocusChangeEvent_type(i, j)
+-XFocusChangeEvent* i;
+-int j;
++void 
++set_XFocusChangeEvent_type (XFocusChangeEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -959,76 +894,72 @@ int j;
+ /********* XKeymapEvent functions *****/
+-long  make_XKeymapEvent (){
++long 
++make_XKeymapEvent (void){
+           return ((long) calloc(1, sizeof(XKeymapEvent)));
+ }
+-char* XKeymapEvent_key_vector(i)
+-XKeymapEvent* i;
++char *
++XKeymapEvent_key_vector (XKeymapEvent *i)
+ {
+           return(i->key_vector);
+ }
+-int  XKeymapEvent_window(i)
+-XKeymapEvent* i;
++int 
++XKeymapEvent_window (XKeymapEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XKeymapEvent_window(i, j)
+-XKeymapEvent* i;
+-int j;
++void 
++set_XKeymapEvent_window (XKeymapEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XKeymapEvent_display(i)
+-XKeymapEvent* i;
++long 
++XKeymapEvent_display (XKeymapEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XKeymapEvent_display(i, j)
+-XKeymapEvent* i;
+-long j;
++void 
++set_XKeymapEvent_display (XKeymapEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XKeymapEvent_send_event(i)
+-XKeymapEvent* i;
++int 
++XKeymapEvent_send_event (XKeymapEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XKeymapEvent_send_event(i, j)
+-XKeymapEvent* i;
+-int j;
++void 
++set_XKeymapEvent_send_event (XKeymapEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XKeymapEvent_serial(i)
+-XKeymapEvent* i;
++int 
++XKeymapEvent_serial (XKeymapEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XKeymapEvent_serial(i, j)
+-XKeymapEvent* i;
+-int j;
++void 
++set_XKeymapEvent_serial (XKeymapEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XKeymapEvent_type(i)
+-XKeymapEvent* i;
++int 
++XKeymapEvent_type (XKeymapEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XKeymapEvent_type(i, j)
+-XKeymapEvent* i;
+-int j;
++void 
++set_XKeymapEvent_type (XKeymapEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1036,136 +967,127 @@ int j;
+ /********* XExposeEvent functions *****/
+-long  make_XExposeEvent (){
++long 
++make_XExposeEvent (void){
+           return ((long) calloc(1, sizeof(XExposeEvent)));
+ }
+-int  XExposeEvent_count(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_count (XExposeEvent *i)
+ {
+           return(i->count);
+ }
+-void set_XExposeEvent_count(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_count (XExposeEvent *i, int j)
+ {
+           i->count = j;
+ }
+-int  XExposeEvent_height(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_height (XExposeEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XExposeEvent_height(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_height (XExposeEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XExposeEvent_width(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_width (XExposeEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XExposeEvent_width(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_width (XExposeEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XExposeEvent_y(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_y (XExposeEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XExposeEvent_y(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_y (XExposeEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XExposeEvent_x(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_x (XExposeEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XExposeEvent_x(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_x (XExposeEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XExposeEvent_window(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_window (XExposeEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XExposeEvent_window(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_window (XExposeEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XExposeEvent_display(i)
+-XExposeEvent* i;
++long 
++XExposeEvent_display (XExposeEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XExposeEvent_display(i, j)
+-XExposeEvent* i;
+-long j;
++void 
++set_XExposeEvent_display (XExposeEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XExposeEvent_send_event(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_send_event (XExposeEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XExposeEvent_send_event(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_send_event (XExposeEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XExposeEvent_serial(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_serial (XExposeEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XExposeEvent_serial(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_serial (XExposeEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XExposeEvent_type(i)
+-XExposeEvent* i;
++int 
++XExposeEvent_type (XExposeEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XExposeEvent_type(i, j)
+-XExposeEvent* i;
+-int j;
++void 
++set_XExposeEvent_type (XExposeEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1173,162 +1095,151 @@ int j;
+ /********* XGraphicsExposeEvent functions *****/
+-long  make_XGraphicsExposeEvent (){
++long 
++make_XGraphicsExposeEvent (void){
+           return ((long) calloc(1, sizeof(XGraphicsExposeEvent)));
+ }
+-int  XGraphicsExposeEvent_minor_code(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_minor_code (XGraphicsExposeEvent *i)
+ {
+           return(i->minor_code);
+ }
+-void set_XGraphicsExposeEvent_minor_code(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_minor_code (XGraphicsExposeEvent *i, int j)
+ {
+           i->minor_code = j;
+ }
+-int  XGraphicsExposeEvent_major_code(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_major_code (XGraphicsExposeEvent *i)
+ {
+           return(i->major_code);
+ }
+-void set_XGraphicsExposeEvent_major_code(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_major_code (XGraphicsExposeEvent *i, int j)
+ {
+           i->major_code = j;
+ }
+-int  XGraphicsExposeEvent_count(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_count (XGraphicsExposeEvent *i)
+ {
+           return(i->count);
+ }
+-void set_XGraphicsExposeEvent_count(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_count (XGraphicsExposeEvent *i, int j)
+ {
+           i->count = j;
+ }
+-int  XGraphicsExposeEvent_height(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_height (XGraphicsExposeEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XGraphicsExposeEvent_height(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_height (XGraphicsExposeEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XGraphicsExposeEvent_width(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_width (XGraphicsExposeEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XGraphicsExposeEvent_width(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_width (XGraphicsExposeEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XGraphicsExposeEvent_y(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_y (XGraphicsExposeEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XGraphicsExposeEvent_y(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_y (XGraphicsExposeEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XGraphicsExposeEvent_x(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_x (XGraphicsExposeEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XGraphicsExposeEvent_x(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_x (XGraphicsExposeEvent *i, int j)
+ {
+           i->x = j;
+ }
+-Drawable XGraphicsExposeEvent_drawable(i)
+-XGraphicsExposeEvent* i;
++Drawable 
++XGraphicsExposeEvent_drawable (XGraphicsExposeEvent *i)
+ {
+           return(i->drawable);
+ }
+-void set_XGraphicsExposeEvent_drawable(i, j)
+-XGraphicsExposeEvent* i;
+-Drawable j;
++void 
++set_XGraphicsExposeEvent_drawable (XGraphicsExposeEvent *i, Drawable j)
+ {
+           i->drawable = j;
+ }
+-long  XGraphicsExposeEvent_display(i)
+-XGraphicsExposeEvent* i;
++long 
++XGraphicsExposeEvent_display (XGraphicsExposeEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XGraphicsExposeEvent_display(i, j)
+-XGraphicsExposeEvent* i;
+-long j;
++void 
++set_XGraphicsExposeEvent_display (XGraphicsExposeEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XGraphicsExposeEvent_send_event(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_send_event (XGraphicsExposeEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XGraphicsExposeEvent_send_event(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_send_event (XGraphicsExposeEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XGraphicsExposeEvent_serial(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_serial (XGraphicsExposeEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XGraphicsExposeEvent_serial(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_serial (XGraphicsExposeEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XGraphicsExposeEvent_type(i)
+-XGraphicsExposeEvent* i;
++int 
++XGraphicsExposeEvent_type (XGraphicsExposeEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XGraphicsExposeEvent_type(i, j)
+-XGraphicsExposeEvent* i;
+-int j;
++void 
++set_XGraphicsExposeEvent_type (XGraphicsExposeEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1336,97 +1247,91 @@ int j;
+ /********* XNoExposeEvent functions *****/
+-long  make_XNoExposeEvent (){
++long 
++make_XNoExposeEvent (void){
+           return ((long) calloc(1, sizeof(XNoExposeEvent)));
+ }
+-int  XNoExposeEvent_minor_code(i)
+-XNoExposeEvent* i;
++int 
++XNoExposeEvent_minor_code (XNoExposeEvent *i)
+ {
+           return(i->minor_code);
+ }
+-void set_XNoExposeEvent_minor_code(i, j)
+-XNoExposeEvent* i;
+-int j;
++void 
++set_XNoExposeEvent_minor_code (XNoExposeEvent *i, int j)
+ {
+           i->minor_code = j;
+ }
+-int  XNoExposeEvent_major_code(i)
+-XNoExposeEvent* i;
++int 
++XNoExposeEvent_major_code (XNoExposeEvent *i)
+ {
+           return(i->major_code);
+ }
+-void set_XNoExposeEvent_major_code(i, j)
+-XNoExposeEvent* i;
+-int j;
++void 
++set_XNoExposeEvent_major_code (XNoExposeEvent *i, int j)
+ {
+           i->major_code = j;
+ }
+-Drawable XNoExposeEvent_drawable(i)
+-XNoExposeEvent* i;
++Drawable 
++XNoExposeEvent_drawable (XNoExposeEvent *i)
+ {
+           return(i->drawable);
+ }
+-void set_XNoExposeEvent_drawable(i, j)
+-XNoExposeEvent* i;
+-Drawable j;
++void 
++set_XNoExposeEvent_drawable (XNoExposeEvent *i, Drawable j)
+ {
+           i->drawable = j;
+ }
+-long  XNoExposeEvent_display(i)
+-XNoExposeEvent* i;
++long 
++XNoExposeEvent_display (XNoExposeEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XNoExposeEvent_display(i, j)
+-XNoExposeEvent* i;
+-long j;
++void 
++set_XNoExposeEvent_display (XNoExposeEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XNoExposeEvent_send_event(i)
+-XNoExposeEvent* i;
++int 
++XNoExposeEvent_send_event (XNoExposeEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XNoExposeEvent_send_event(i, j)
+-XNoExposeEvent* i;
+-int j;
++void 
++set_XNoExposeEvent_send_event (XNoExposeEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XNoExposeEvent_serial(i)
+-XNoExposeEvent* i;
++int 
++XNoExposeEvent_serial (XNoExposeEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XNoExposeEvent_serial(i, j)
+-XNoExposeEvent* i;
+-int j;
++void 
++set_XNoExposeEvent_serial (XNoExposeEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XNoExposeEvent_type(i)
+-XNoExposeEvent* i;
++int 
++XNoExposeEvent_type (XNoExposeEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XNoExposeEvent_type(i, j)
+-XNoExposeEvent* i;
+-int j;
++void 
++set_XNoExposeEvent_type (XNoExposeEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1434,84 +1339,79 @@ int j;
+ /********* XVisibilityEvent functions *****/
+-long  make_XVisibilityEvent (){
++long 
++make_XVisibilityEvent (void){
+           return ((long) calloc(1, sizeof(XVisibilityEvent)));
+ }
+-int  XVisibilityEvent_state(i)
+-XVisibilityEvent* i;
++int 
++XVisibilityEvent_state (XVisibilityEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XVisibilityEvent_state(i, j)
+-XVisibilityEvent* i;
+-int j;
++void 
++set_XVisibilityEvent_state (XVisibilityEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XVisibilityEvent_window(i)
+-XVisibilityEvent* i;
++int 
++XVisibilityEvent_window (XVisibilityEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XVisibilityEvent_window(i, j)
+-XVisibilityEvent* i;
+-int j;
++void 
++set_XVisibilityEvent_window (XVisibilityEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XVisibilityEvent_display(i)
+-XVisibilityEvent* i;
++long 
++XVisibilityEvent_display (XVisibilityEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XVisibilityEvent_display(i, j)
+-XVisibilityEvent* i;
+-long j;
++void 
++set_XVisibilityEvent_display (XVisibilityEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XVisibilityEvent_send_event(i)
+-XVisibilityEvent* i;
++int 
++XVisibilityEvent_send_event (XVisibilityEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XVisibilityEvent_send_event(i, j)
+-XVisibilityEvent* i;
+-int j;
++void 
++set_XVisibilityEvent_send_event (XVisibilityEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XVisibilityEvent_serial(i)
+-XVisibilityEvent* i;
++int 
++XVisibilityEvent_serial (XVisibilityEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XVisibilityEvent_serial(i, j)
+-XVisibilityEvent* i;
+-int j;
++void 
++set_XVisibilityEvent_serial (XVisibilityEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XVisibilityEvent_type(i)
+-XVisibilityEvent* i;
++int 
++XVisibilityEvent_type (XVisibilityEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XVisibilityEvent_type(i, j)
+-XVisibilityEvent* i;
+-int j;
++void 
++set_XVisibilityEvent_type (XVisibilityEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1519,162 +1419,151 @@ int j;
+ /********* XCreateWindowEvent functions *****/
+-long  make_XCreateWindowEvent (){
++long 
++make_XCreateWindowEvent (void){
+           return ((long) calloc(1, sizeof(XCreateWindowEvent)));
+ }
+-int  XCreateWindowEvent_override_redirect(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_override_redirect (XCreateWindowEvent *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XCreateWindowEvent_override_redirect(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_override_redirect (XCreateWindowEvent *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XCreateWindowEvent_border_width(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_border_width (XCreateWindowEvent *i)
+ {
+           return(i->border_width);
+ }
+-void set_XCreateWindowEvent_border_width(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_border_width (XCreateWindowEvent *i, int j)
+ {
+           i->border_width = j;
+ }
+-int  XCreateWindowEvent_height(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_height (XCreateWindowEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XCreateWindowEvent_height(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_height (XCreateWindowEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XCreateWindowEvent_width(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_width (XCreateWindowEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XCreateWindowEvent_width(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_width (XCreateWindowEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XCreateWindowEvent_y(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_y (XCreateWindowEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XCreateWindowEvent_y(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_y (XCreateWindowEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XCreateWindowEvent_x(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_x (XCreateWindowEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XCreateWindowEvent_x(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_x (XCreateWindowEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XCreateWindowEvent_window(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_window (XCreateWindowEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XCreateWindowEvent_window(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_window (XCreateWindowEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XCreateWindowEvent_parent(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_parent (XCreateWindowEvent *i)
+ {
+           return(i->parent);
+ }
+-void set_XCreateWindowEvent_parent(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_parent (XCreateWindowEvent *i, int j)
+ {
+           i->parent = j;
+ }
+-long  XCreateWindowEvent_display(i)
+-XCreateWindowEvent* i;
++long 
++XCreateWindowEvent_display (XCreateWindowEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XCreateWindowEvent_display(i, j)
+-XCreateWindowEvent* i;
+-long j;
++void 
++set_XCreateWindowEvent_display (XCreateWindowEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XCreateWindowEvent_send_event(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_send_event (XCreateWindowEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XCreateWindowEvent_send_event(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_send_event (XCreateWindowEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XCreateWindowEvent_serial(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_serial (XCreateWindowEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XCreateWindowEvent_serial(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_serial (XCreateWindowEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XCreateWindowEvent_type(i)
+-XCreateWindowEvent* i;
++int 
++XCreateWindowEvent_type (XCreateWindowEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XCreateWindowEvent_type(i, j)
+-XCreateWindowEvent* i;
+-int j;
++void 
++set_XCreateWindowEvent_type (XCreateWindowEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1682,84 +1571,79 @@ int j;
+ /********* XDestroyWindowEvent functions *****/
+-long  make_XDestroyWindowEvent (){
++long 
++make_XDestroyWindowEvent (void){
+           return ((long) calloc(1, sizeof(XDestroyWindowEvent)));
+ }
+-int  XDestroyWindowEvent_window(i)
+-XDestroyWindowEvent* i;
++int 
++XDestroyWindowEvent_window (XDestroyWindowEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XDestroyWindowEvent_window(i, j)
+-XDestroyWindowEvent* i;
+-int j;
++void 
++set_XDestroyWindowEvent_window (XDestroyWindowEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XDestroyWindowEvent_event(i)
+-XDestroyWindowEvent* i;
++int 
++XDestroyWindowEvent_event (XDestroyWindowEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XDestroyWindowEvent_event(i, j)
+-XDestroyWindowEvent* i;
+-int j;
++void 
++set_XDestroyWindowEvent_event (XDestroyWindowEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XDestroyWindowEvent_display(i)
+-XDestroyWindowEvent* i;
++long 
++XDestroyWindowEvent_display (XDestroyWindowEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XDestroyWindowEvent_display(i, j)
+-XDestroyWindowEvent* i;
+-long j;
++void 
++set_XDestroyWindowEvent_display (XDestroyWindowEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XDestroyWindowEvent_send_event(i)
+-XDestroyWindowEvent* i;
++int 
++XDestroyWindowEvent_send_event (XDestroyWindowEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XDestroyWindowEvent_send_event(i, j)
+-XDestroyWindowEvent* i;
+-int j;
++void 
++set_XDestroyWindowEvent_send_event (XDestroyWindowEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XDestroyWindowEvent_serial(i)
+-XDestroyWindowEvent* i;
++int 
++XDestroyWindowEvent_serial (XDestroyWindowEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XDestroyWindowEvent_serial(i, j)
+-XDestroyWindowEvent* i;
+-int j;
++void 
++set_XDestroyWindowEvent_serial (XDestroyWindowEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XDestroyWindowEvent_type(i)
+-XDestroyWindowEvent* i;
++int 
++XDestroyWindowEvent_type (XDestroyWindowEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XDestroyWindowEvent_type(i, j)
+-XDestroyWindowEvent* i;
+-int j;
++void 
++set_XDestroyWindowEvent_type (XDestroyWindowEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1767,97 +1651,91 @@ int j;
+ /********* XUnmapEvent functions *****/
+-long  make_XUnmapEvent (){
++long 
++make_XUnmapEvent (void){
+           return ((long) calloc(1, sizeof(XUnmapEvent)));
+ }
+-int  XUnmapEvent_from_configure(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_from_configure (XUnmapEvent *i)
+ {
+           return(i->from_configure);
+ }
+-void set_XUnmapEvent_from_configure(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_from_configure (XUnmapEvent *i, int j)
+ {
+           i->from_configure = j;
+ }
+-int  XUnmapEvent_window(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_window (XUnmapEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XUnmapEvent_window(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_window (XUnmapEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XUnmapEvent_event(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_event (XUnmapEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XUnmapEvent_event(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_event (XUnmapEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XUnmapEvent_display(i)
+-XUnmapEvent* i;
++long 
++XUnmapEvent_display (XUnmapEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XUnmapEvent_display(i, j)
+-XUnmapEvent* i;
+-long j;
++void 
++set_XUnmapEvent_display (XUnmapEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XUnmapEvent_send_event(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_send_event (XUnmapEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XUnmapEvent_send_event(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_send_event (XUnmapEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XUnmapEvent_serial(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_serial (XUnmapEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XUnmapEvent_serial(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_serial (XUnmapEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XUnmapEvent_type(i)
+-XUnmapEvent* i;
++int 
++XUnmapEvent_type (XUnmapEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XUnmapEvent_type(i, j)
+-XUnmapEvent* i;
+-int j;
++void 
++set_XUnmapEvent_type (XUnmapEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1865,97 +1743,91 @@ int j;
+ /********* XMapEvent functions *****/
+-long  make_XMapEvent (){
++long 
++make_XMapEvent (void){
+           return ((long) calloc(1, sizeof(XMapEvent)));
+ }
+-int  XMapEvent_override_redirect(i)
+-XMapEvent* i;
++int 
++XMapEvent_override_redirect (XMapEvent *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XMapEvent_override_redirect(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_override_redirect (XMapEvent *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XMapEvent_window(i)
+-XMapEvent* i;
++int 
++XMapEvent_window (XMapEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XMapEvent_window(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_window (XMapEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XMapEvent_event(i)
+-XMapEvent* i;
++int 
++XMapEvent_event (XMapEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XMapEvent_event(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_event (XMapEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XMapEvent_display(i)
+-XMapEvent* i;
++long 
++XMapEvent_display (XMapEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XMapEvent_display(i, j)
+-XMapEvent* i;
+-long j;
++void 
++set_XMapEvent_display (XMapEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XMapEvent_send_event(i)
+-XMapEvent* i;
++int 
++XMapEvent_send_event (XMapEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XMapEvent_send_event(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_send_event (XMapEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XMapEvent_serial(i)
+-XMapEvent* i;
++int 
++XMapEvent_serial (XMapEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XMapEvent_serial(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_serial (XMapEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XMapEvent_type(i)
+-XMapEvent* i;
++int 
++XMapEvent_type (XMapEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XMapEvent_type(i, j)
+-XMapEvent* i;
+-int j;
++void 
++set_XMapEvent_type (XMapEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -1963,84 +1835,79 @@ int j;
+ /********* XMapRequestEvent functions *****/
+-long  make_XMapRequestEvent (){
++long 
++make_XMapRequestEvent (void){
+           return ((long) calloc(1, sizeof(XMapRequestEvent)));
+ }
+-int  XMapRequestEvent_window(i)
+-XMapRequestEvent* i;
++int 
++XMapRequestEvent_window (XMapRequestEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XMapRequestEvent_window(i, j)
+-XMapRequestEvent* i;
+-int j;
++void 
++set_XMapRequestEvent_window (XMapRequestEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XMapRequestEvent_parent(i)
+-XMapRequestEvent* i;
++int 
++XMapRequestEvent_parent (XMapRequestEvent *i)
+ {
+           return(i->parent);
+ }
+-void set_XMapRequestEvent_parent(i, j)
+-XMapRequestEvent* i;
+-int j;
++void 
++set_XMapRequestEvent_parent (XMapRequestEvent *i, int j)
+ {
+           i->parent = j;
+ }
+-long  XMapRequestEvent_display(i)
+-XMapRequestEvent* i;
++long 
++XMapRequestEvent_display (XMapRequestEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XMapRequestEvent_display(i, j)
+-XMapRequestEvent* i;
+-long j;
++void 
++set_XMapRequestEvent_display (XMapRequestEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XMapRequestEvent_send_event(i)
+-XMapRequestEvent* i;
++int 
++XMapRequestEvent_send_event (XMapRequestEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XMapRequestEvent_send_event(i, j)
+-XMapRequestEvent* i;
+-int j;
++void 
++set_XMapRequestEvent_send_event (XMapRequestEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XMapRequestEvent_serial(i)
+-XMapRequestEvent* i;
++int 
++XMapRequestEvent_serial (XMapRequestEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XMapRequestEvent_serial(i, j)
+-XMapRequestEvent* i;
+-int j;
++void 
++set_XMapRequestEvent_serial (XMapRequestEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XMapRequestEvent_type(i)
+-XMapRequestEvent* i;
++int 
++XMapRequestEvent_type (XMapRequestEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XMapRequestEvent_type(i, j)
+-XMapRequestEvent* i;
+-int j;
++void 
++set_XMapRequestEvent_type (XMapRequestEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2048,136 +1915,127 @@ int j;
+ /********* XReparentEvent functions *****/
+-long  make_XReparentEvent (){
++long 
++make_XReparentEvent (void){
+           return ((long) calloc(1, sizeof(XReparentEvent)));
+ }
+-int  XReparentEvent_override_redirect(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_override_redirect (XReparentEvent *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XReparentEvent_override_redirect(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_override_redirect (XReparentEvent *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XReparentEvent_y(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_y (XReparentEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XReparentEvent_y(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_y (XReparentEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XReparentEvent_x(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_x (XReparentEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XReparentEvent_x(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_x (XReparentEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XReparentEvent_parent(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_parent (XReparentEvent *i)
+ {
+           return(i->parent);
+ }
+-void set_XReparentEvent_parent(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_parent (XReparentEvent *i, int j)
+ {
+           i->parent = j;
+ }
+-int  XReparentEvent_window(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_window (XReparentEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XReparentEvent_window(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_window (XReparentEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XReparentEvent_event(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_event (XReparentEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XReparentEvent_event(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_event (XReparentEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XReparentEvent_display(i)
+-XReparentEvent* i;
++long 
++XReparentEvent_display (XReparentEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XReparentEvent_display(i, j)
+-XReparentEvent* i;
+-long j;
++void 
++set_XReparentEvent_display (XReparentEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XReparentEvent_send_event(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_send_event (XReparentEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XReparentEvent_send_event(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_send_event (XReparentEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XReparentEvent_serial(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_serial (XReparentEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XReparentEvent_serial(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_serial (XReparentEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XReparentEvent_type(i)
+-XReparentEvent* i;
++int 
++XReparentEvent_type (XReparentEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XReparentEvent_type(i, j)
+-XReparentEvent* i;
+-int j;
++void 
++set_XReparentEvent_type (XReparentEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2185,175 +2043,163 @@ int j;
+ /********* XConfigureEvent functions *****/
+-long  make_XConfigureEvent (){
++long 
++make_XConfigureEvent (void){
+           return ((long) calloc(1, sizeof(XConfigureEvent)));
+ }
+-int  XConfigureEvent_override_redirect(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_override_redirect (XConfigureEvent *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XConfigureEvent_override_redirect(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_override_redirect (XConfigureEvent *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XConfigureEvent_above(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_above (XConfigureEvent *i)
+ {
+           return(i->above);
+ }
+-void set_XConfigureEvent_above(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_above (XConfigureEvent *i, int j)
+ {
+           i->above = j;
+ }
+-int  XConfigureEvent_border_width(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_border_width (XConfigureEvent *i)
+ {
+           return(i->border_width);
+ }
+-void set_XConfigureEvent_border_width(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_border_width (XConfigureEvent *i, int j)
+ {
+           i->border_width = j;
+ }
+-int  XConfigureEvent_height(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_height (XConfigureEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XConfigureEvent_height(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_height (XConfigureEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XConfigureEvent_width(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_width (XConfigureEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XConfigureEvent_width(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_width (XConfigureEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XConfigureEvent_y(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_y (XConfigureEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XConfigureEvent_y(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_y (XConfigureEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XConfigureEvent_x(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_x (XConfigureEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XConfigureEvent_x(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_x (XConfigureEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XConfigureEvent_window(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_window (XConfigureEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XConfigureEvent_window(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_window (XConfigureEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XConfigureEvent_event(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_event (XConfigureEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XConfigureEvent_event(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_event (XConfigureEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XConfigureEvent_display(i)
+-XConfigureEvent* i;
++long 
++XConfigureEvent_display (XConfigureEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XConfigureEvent_display(i, j)
+-XConfigureEvent* i;
+-long j;
++void 
++set_XConfigureEvent_display (XConfigureEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XConfigureEvent_send_event(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_send_event (XConfigureEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XConfigureEvent_send_event(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_send_event (XConfigureEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XConfigureEvent_serial(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_serial (XConfigureEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XConfigureEvent_serial(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_serial (XConfigureEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XConfigureEvent_type(i)
+-XConfigureEvent* i;
++int 
++XConfigureEvent_type (XConfigureEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XConfigureEvent_type(i, j)
+-XConfigureEvent* i;
+-int j;
++void 
++set_XConfigureEvent_type (XConfigureEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2361,110 +2207,103 @@ int j;
+ /********* XGravityEvent functions *****/
+-long  make_XGravityEvent (){
++long 
++make_XGravityEvent (void){
+           return ((long) calloc(1, sizeof(XGravityEvent)));
+ }
+-int  XGravityEvent_y(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_y (XGravityEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XGravityEvent_y(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_y (XGravityEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XGravityEvent_x(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_x (XGravityEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XGravityEvent_x(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_x (XGravityEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XGravityEvent_window(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_window (XGravityEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XGravityEvent_window(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_window (XGravityEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XGravityEvent_event(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_event (XGravityEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XGravityEvent_event(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_event (XGravityEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XGravityEvent_display(i)
+-XGravityEvent* i;
++long 
++XGravityEvent_display (XGravityEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XGravityEvent_display(i, j)
+-XGravityEvent* i;
+-long j;
++void 
++set_XGravityEvent_display (XGravityEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XGravityEvent_send_event(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_send_event (XGravityEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XGravityEvent_send_event(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_send_event (XGravityEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XGravityEvent_serial(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_serial (XGravityEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XGravityEvent_serial(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_serial (XGravityEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XGravityEvent_type(i)
+-XGravityEvent* i;
++int 
++XGravityEvent_type (XGravityEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XGravityEvent_type(i, j)
+-XGravityEvent* i;
+-int j;
++void 
++set_XGravityEvent_type (XGravityEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2472,97 +2311,91 @@ int j;
+ /********* XResizeRequestEvent functions *****/
+-long  make_XResizeRequestEvent (){
++long 
++make_XResizeRequestEvent (void){
+           return ((long) calloc(1, sizeof(XResizeRequestEvent)));
+ }
+-int  XResizeRequestEvent_height(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_height (XResizeRequestEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XResizeRequestEvent_height(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_height (XResizeRequestEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XResizeRequestEvent_width(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_width (XResizeRequestEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XResizeRequestEvent_width(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_width (XResizeRequestEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XResizeRequestEvent_window(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_window (XResizeRequestEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XResizeRequestEvent_window(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_window (XResizeRequestEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XResizeRequestEvent_display(i)
+-XResizeRequestEvent* i;
++long 
++XResizeRequestEvent_display (XResizeRequestEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XResizeRequestEvent_display(i, j)
+-XResizeRequestEvent* i;
+-long j;
++void 
++set_XResizeRequestEvent_display (XResizeRequestEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XResizeRequestEvent_send_event(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_send_event (XResizeRequestEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XResizeRequestEvent_send_event(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_send_event (XResizeRequestEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XResizeRequestEvent_serial(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_serial (XResizeRequestEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XResizeRequestEvent_serial(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_serial (XResizeRequestEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XResizeRequestEvent_type(i)
+-XResizeRequestEvent* i;
++int 
++XResizeRequestEvent_type (XResizeRequestEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XResizeRequestEvent_type(i, j)
+-XResizeRequestEvent* i;
+-int j;
++void 
++set_XResizeRequestEvent_type (XResizeRequestEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2570,188 +2403,175 @@ int j;
+ /********* XConfigureRequestEvent functions *****/
+-long  make_XConfigureRequestEvent (){
++long 
++make_XConfigureRequestEvent (void){
+           return ((long) calloc(1, sizeof(XConfigureRequestEvent)));
+ }
+-int  XConfigureRequestEvent_value_mask(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_value_mask (XConfigureRequestEvent *i)
+ {
+           return(i->value_mask);
+ }
+-void set_XConfigureRequestEvent_value_mask(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_value_mask (XConfigureRequestEvent *i, int j)
+ {
+           i->value_mask = j;
+ }
+-int  XConfigureRequestEvent_detail(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_detail (XConfigureRequestEvent *i)
+ {
+           return(i->detail);
+ }
+-void set_XConfigureRequestEvent_detail(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_detail (XConfigureRequestEvent *i, int j)
+ {
+           i->detail = j;
+ }
+-int  XConfigureRequestEvent_above(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_above (XConfigureRequestEvent *i)
+ {
+           return(i->above);
+ }
+-void set_XConfigureRequestEvent_above(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_above (XConfigureRequestEvent *i, int j)
+ {
+           i->above = j;
+ }
+-int  XConfigureRequestEvent_border_width(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_border_width (XConfigureRequestEvent *i)
+ {
+           return(i->border_width);
+ }
+-void set_XConfigureRequestEvent_border_width(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_border_width (XConfigureRequestEvent *i, int j)
+ {
+           i->border_width = j;
+ }
+-int  XConfigureRequestEvent_height(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_height (XConfigureRequestEvent *i)
+ {
+           return(i->height);
+ }
+-void set_XConfigureRequestEvent_height(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_height (XConfigureRequestEvent *i, int j)
+ {
+           i->height = j;
+ }
+-int  XConfigureRequestEvent_width(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_width (XConfigureRequestEvent *i)
+ {
+           return(i->width);
+ }
+-void set_XConfigureRequestEvent_width(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_width (XConfigureRequestEvent *i, int j)
+ {
+           i->width = j;
+ }
+-int  XConfigureRequestEvent_y(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_y (XConfigureRequestEvent *i)
+ {
+           return(i->y);
+ }
+-void set_XConfigureRequestEvent_y(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_y (XConfigureRequestEvent *i, int j)
+ {
+           i->y = j;
+ }
+-int  XConfigureRequestEvent_x(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_x (XConfigureRequestEvent *i)
+ {
+           return(i->x);
+ }
+-void set_XConfigureRequestEvent_x(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_x (XConfigureRequestEvent *i, int j)
+ {
+           i->x = j;
+ }
+-int  XConfigureRequestEvent_window(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_window (XConfigureRequestEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XConfigureRequestEvent_window(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_window (XConfigureRequestEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XConfigureRequestEvent_parent(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_parent (XConfigureRequestEvent *i)
+ {
+           return(i->parent);
+ }
+-void set_XConfigureRequestEvent_parent(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_parent (XConfigureRequestEvent *i, int j)
+ {
+           i->parent = j;
+ }
+-long  XConfigureRequestEvent_display(i)
+-XConfigureRequestEvent* i;
++long 
++XConfigureRequestEvent_display (XConfigureRequestEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XConfigureRequestEvent_display(i, j)
+-XConfigureRequestEvent* i;
+-long j;
++void 
++set_XConfigureRequestEvent_display (XConfigureRequestEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XConfigureRequestEvent_send_event(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_send_event (XConfigureRequestEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XConfigureRequestEvent_send_event(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_send_event (XConfigureRequestEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XConfigureRequestEvent_serial(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_serial (XConfigureRequestEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XConfigureRequestEvent_serial(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_serial (XConfigureRequestEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XConfigureRequestEvent_type(i)
+-XConfigureRequestEvent* i;
++int 
++XConfigureRequestEvent_type (XConfigureRequestEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XConfigureRequestEvent_type(i, j)
+-XConfigureRequestEvent* i;
+-int j;
++void 
++set_XConfigureRequestEvent_type (XConfigureRequestEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2759,97 +2579,91 @@ int j;
+ /********* XCirculateEvent functions *****/
+-long  make_XCirculateEvent (){
++long 
++make_XCirculateEvent (void){
+           return ((long) calloc(1, sizeof(XCirculateEvent)));
+ }
+-int  XCirculateEvent_place(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_place (XCirculateEvent *i)
+ {
+           return(i->place);
+ }
+-void set_XCirculateEvent_place(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_place (XCirculateEvent *i, int j)
+ {
+           i->place = j;
+ }
+-int  XCirculateEvent_window(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_window (XCirculateEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XCirculateEvent_window(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_window (XCirculateEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XCirculateEvent_event(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_event (XCirculateEvent *i)
+ {
+           return(i->event);
+ }
+-void set_XCirculateEvent_event(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_event (XCirculateEvent *i, int j)
+ {
+           i->event = j;
+ }
+-long  XCirculateEvent_display(i)
+-XCirculateEvent* i;
++long 
++XCirculateEvent_display (XCirculateEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XCirculateEvent_display(i, j)
+-XCirculateEvent* i;
+-long j;
++void 
++set_XCirculateEvent_display (XCirculateEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XCirculateEvent_send_event(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_send_event (XCirculateEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XCirculateEvent_send_event(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_send_event (XCirculateEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XCirculateEvent_serial(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_serial (XCirculateEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XCirculateEvent_serial(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_serial (XCirculateEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XCirculateEvent_type(i)
+-XCirculateEvent* i;
++int 
++XCirculateEvent_type (XCirculateEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XCirculateEvent_type(i, j)
+-XCirculateEvent* i;
+-int j;
++void 
++set_XCirculateEvent_type (XCirculateEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2857,97 +2671,91 @@ int j;
+ /********* XCirculateRequestEvent functions *****/
+-long  make_XCirculateRequestEvent (){
++long 
++make_XCirculateRequestEvent (void){
+           return ((long) calloc(1, sizeof(XCirculateRequestEvent)));
+ }
+-int  XCirculateRequestEvent_place(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_place (XCirculateRequestEvent *i)
+ {
+           return(i->place);
+ }
+-void set_XCirculateRequestEvent_place(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_place (XCirculateRequestEvent *i, int j)
+ {
+           i->place = j;
+ }
+-int  XCirculateRequestEvent_window(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_window (XCirculateRequestEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XCirculateRequestEvent_window(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_window (XCirculateRequestEvent *i, int j)
+ {
+           i->window = j;
+ }
+-int  XCirculateRequestEvent_parent(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_parent (XCirculateRequestEvent *i)
+ {
+           return(i->parent);
+ }
+-void set_XCirculateRequestEvent_parent(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_parent (XCirculateRequestEvent *i, int j)
+ {
+           i->parent = j;
+ }
+-long  XCirculateRequestEvent_display(i)
+-XCirculateRequestEvent* i;
++long 
++XCirculateRequestEvent_display (XCirculateRequestEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XCirculateRequestEvent_display(i, j)
+-XCirculateRequestEvent* i;
+-long j;
++void 
++set_XCirculateRequestEvent_display (XCirculateRequestEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XCirculateRequestEvent_send_event(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_send_event (XCirculateRequestEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XCirculateRequestEvent_send_event(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_send_event (XCirculateRequestEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XCirculateRequestEvent_serial(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_serial (XCirculateRequestEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XCirculateRequestEvent_serial(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_serial (XCirculateRequestEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XCirculateRequestEvent_type(i)
+-XCirculateRequestEvent* i;
++int 
++XCirculateRequestEvent_type (XCirculateRequestEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XCirculateRequestEvent_type(i, j)
+-XCirculateRequestEvent* i;
+-int j;
++void 
++set_XCirculateRequestEvent_type (XCirculateRequestEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -2955,110 +2763,103 @@ int j;
+ /********* XPropertyEvent functions *****/
+-long  make_XPropertyEvent (){
++long 
++make_XPropertyEvent (void){
+           return ((long) calloc(1, sizeof(XPropertyEvent)));
+ }
+-int  XPropertyEvent_state(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_state (XPropertyEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XPropertyEvent_state(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_state (XPropertyEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XPropertyEvent_time(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_time (XPropertyEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XPropertyEvent_time(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_time (XPropertyEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XPropertyEvent_atom(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_atom (XPropertyEvent *i)
+ {
+           return(i->atom);
+ }
+-void set_XPropertyEvent_atom(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_atom (XPropertyEvent *i, int j)
+ {
+           i->atom = j;
+ }
+-int  XPropertyEvent_window(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_window (XPropertyEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XPropertyEvent_window(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_window (XPropertyEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XPropertyEvent_display(i)
+-XPropertyEvent* i;
++long 
++XPropertyEvent_display (XPropertyEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XPropertyEvent_display(i, j)
+-XPropertyEvent* i;
+-long j;
++void 
++set_XPropertyEvent_display (XPropertyEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XPropertyEvent_send_event(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_send_event (XPropertyEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XPropertyEvent_send_event(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_send_event (XPropertyEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XPropertyEvent_serial(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_serial (XPropertyEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XPropertyEvent_serial(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_serial (XPropertyEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XPropertyEvent_type(i)
+-XPropertyEvent* i;
++int 
++XPropertyEvent_type (XPropertyEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XPropertyEvent_type(i, j)
+-XPropertyEvent* i;
+-int j;
++void 
++set_XPropertyEvent_type (XPropertyEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3066,97 +2867,91 @@ int j;
+ /********* XSelectionClearEvent functions *****/
+-long  make_XSelectionClearEvent (){
++long 
++make_XSelectionClearEvent (void){
+           return ((long) calloc(1, sizeof(XSelectionClearEvent)));
+ }
+-int  XSelectionClearEvent_time(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_time (XSelectionClearEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XSelectionClearEvent_time(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_time (XSelectionClearEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XSelectionClearEvent_selection(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_selection (XSelectionClearEvent *i)
+ {
+           return(i->selection);
+ }
+-void set_XSelectionClearEvent_selection(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_selection (XSelectionClearEvent *i, int j)
+ {
+           i->selection = j;
+ }
+-int  XSelectionClearEvent_window(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_window (XSelectionClearEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XSelectionClearEvent_window(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_window (XSelectionClearEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XSelectionClearEvent_display(i)
+-XSelectionClearEvent* i;
++long 
++XSelectionClearEvent_display (XSelectionClearEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XSelectionClearEvent_display(i, j)
+-XSelectionClearEvent* i;
+-long j;
++void 
++set_XSelectionClearEvent_display (XSelectionClearEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XSelectionClearEvent_send_event(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_send_event (XSelectionClearEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XSelectionClearEvent_send_event(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_send_event (XSelectionClearEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XSelectionClearEvent_serial(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_serial (XSelectionClearEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XSelectionClearEvent_serial(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_serial (XSelectionClearEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XSelectionClearEvent_type(i)
+-XSelectionClearEvent* i;
++int 
++XSelectionClearEvent_type (XSelectionClearEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XSelectionClearEvent_type(i, j)
+-XSelectionClearEvent* i;
+-int j;
++void 
++set_XSelectionClearEvent_type (XSelectionClearEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3164,136 +2959,127 @@ int j;
+ /********* XSelectionRequestEvent functions *****/
+-long  make_XSelectionRequestEvent (){
++long 
++make_XSelectionRequestEvent (void){
+           return ((long) calloc(1, sizeof(XSelectionRequestEvent)));
+ }
+-int  XSelectionRequestEvent_time(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_time (XSelectionRequestEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XSelectionRequestEvent_time(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_time (XSelectionRequestEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XSelectionRequestEvent_property(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_property (XSelectionRequestEvent *i)
+ {
+           return(i->property);
+ }
+-void set_XSelectionRequestEvent_property(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_property (XSelectionRequestEvent *i, int j)
+ {
+           i->property = j;
+ }
+-int  XSelectionRequestEvent_target(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_target (XSelectionRequestEvent *i)
+ {
+           return(i->target);
+ }
+-void set_XSelectionRequestEvent_target(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_target (XSelectionRequestEvent *i, int j)
+ {
+           i->target = j;
+ }
+-int  XSelectionRequestEvent_selection(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_selection (XSelectionRequestEvent *i)
+ {
+           return(i->selection);
+ }
+-void set_XSelectionRequestEvent_selection(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_selection (XSelectionRequestEvent *i, int j)
+ {
+           i->selection = j;
+ }
+-int  XSelectionRequestEvent_requestor(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_requestor (XSelectionRequestEvent *i)
+ {
+           return(i->requestor);
+ }
+-void set_XSelectionRequestEvent_requestor(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_requestor (XSelectionRequestEvent *i, int j)
+ {
+           i->requestor = j;
+ }
+-int  XSelectionRequestEvent_owner(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_owner (XSelectionRequestEvent *i)
+ {
+           return(i->owner);
+ }
+-void set_XSelectionRequestEvent_owner(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_owner (XSelectionRequestEvent *i, int j)
+ {
+           i->owner = j;
+ }
+-long  XSelectionRequestEvent_display(i)
+-XSelectionRequestEvent* i;
++long 
++XSelectionRequestEvent_display (XSelectionRequestEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XSelectionRequestEvent_display(i, j)
+-XSelectionRequestEvent* i;
+-long j;
++void 
++set_XSelectionRequestEvent_display (XSelectionRequestEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XSelectionRequestEvent_send_event(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_send_event (XSelectionRequestEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XSelectionRequestEvent_send_event(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_send_event (XSelectionRequestEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XSelectionRequestEvent_serial(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_serial (XSelectionRequestEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XSelectionRequestEvent_serial(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_serial (XSelectionRequestEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XSelectionRequestEvent_type(i)
+-XSelectionRequestEvent* i;
++int 
++XSelectionRequestEvent_type (XSelectionRequestEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XSelectionRequestEvent_type(i, j)
+-XSelectionRequestEvent* i;
+-int j;
++void 
++set_XSelectionRequestEvent_type (XSelectionRequestEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3301,123 +3087,115 @@ int j;
+ /********* XSelectionEvent functions *****/
+-long  make_XSelectionEvent (){
++long 
++make_XSelectionEvent (void){
+           return ((long) calloc(1, sizeof(XSelectionEvent)));
+ }
+-int  XSelectionEvent_time(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_time (XSelectionEvent *i)
+ {
+           return(i->time);
+ }
+-void set_XSelectionEvent_time(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_time (XSelectionEvent *i, int j)
+ {
+           i->time = j;
+ }
+-int  XSelectionEvent_property(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_property (XSelectionEvent *i)
+ {
+           return(i->property);
+ }
+-void set_XSelectionEvent_property(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_property (XSelectionEvent *i, int j)
+ {
+           i->property = j;
+ }
+-int  XSelectionEvent_target(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_target (XSelectionEvent *i)
+ {
+           return(i->target);
+ }
+-void set_XSelectionEvent_target(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_target (XSelectionEvent *i, int j)
+ {
+           i->target = j;
+ }
+-int  XSelectionEvent_selection(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_selection (XSelectionEvent *i)
+ {
+           return(i->selection);
+ }
+-void set_XSelectionEvent_selection(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_selection (XSelectionEvent *i, int j)
+ {
+           i->selection = j;
+ }
+-int  XSelectionEvent_requestor(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_requestor (XSelectionEvent *i)
+ {
+           return(i->requestor);
+ }
+-void set_XSelectionEvent_requestor(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_requestor (XSelectionEvent *i, int j)
+ {
+           i->requestor = j;
+ }
+-long  XSelectionEvent_display(i)
+-XSelectionEvent* i;
++long 
++XSelectionEvent_display (XSelectionEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XSelectionEvent_display(i, j)
+-XSelectionEvent* i;
+-long j;
++void 
++set_XSelectionEvent_display (XSelectionEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XSelectionEvent_send_event(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_send_event (XSelectionEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XSelectionEvent_send_event(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_send_event (XSelectionEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XSelectionEvent_serial(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_serial (XSelectionEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XSelectionEvent_serial(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_serial (XSelectionEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XSelectionEvent_type(i)
+-XSelectionEvent* i;
++int 
++XSelectionEvent_type (XSelectionEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XSelectionEvent_type(i, j)
+-XSelectionEvent* i;
+-int j;
++void 
++set_XSelectionEvent_type (XSelectionEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3425,110 +3203,103 @@ int j;
+ /********* XColormapEvent functions *****/
+-long  make_XColormapEvent (){
++long 
++make_XColormapEvent (void){
+           return ((long) calloc(1, sizeof(XColormapEvent)));
+ }
+-int  XColormapEvent_state(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_state (XColormapEvent *i)
+ {
+           return(i->state);
+ }
+-void set_XColormapEvent_state(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_state (XColormapEvent *i, int j)
+ {
+           i->state = j;
+ }
+-int  XColormapEvent_new(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_new (XColormapEvent *i)
+ {
+           return(i->new);
+ }
+-void set_XColormapEvent_new(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_new (XColormapEvent *i, int j)
+ {
+           i->new = j;
+ }
+-int  XColormapEvent_colormap(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_colormap (XColormapEvent *i)
+ {
+           return(i->colormap);
+ }
+-void set_XColormapEvent_colormap(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_colormap (XColormapEvent *i, int j)
+ {
+           i->colormap = j;
+ }
+-int  XColormapEvent_window(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_window (XColormapEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XColormapEvent_window(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_window (XColormapEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XColormapEvent_display(i)
+-XColormapEvent* i;
++long 
++XColormapEvent_display (XColormapEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XColormapEvent_display(i, j)
+-XColormapEvent* i;
+-long j;
++void 
++set_XColormapEvent_display (XColormapEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XColormapEvent_send_event(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_send_event (XColormapEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XColormapEvent_send_event(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_send_event (XColormapEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XColormapEvent_serial(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_serial (XColormapEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XColormapEvent_serial(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_serial (XColormapEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XColormapEvent_type(i)
+-XColormapEvent* i;
++int 
++XColormapEvent_type (XColormapEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XColormapEvent_type(i, j)
+-XColormapEvent* i;
+-int j;
++void 
++set_XColormapEvent_type (XColormapEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3536,98 +3307,92 @@ int j;
+ /********* XClientMessageEvent functions *****/
+-long  make_XClientMessageEvent (){
++long 
++make_XClientMessageEvent (void){
+           return ((long) calloc(1, sizeof(XClientMessageEvent)));
+ }
+-int  XClientMessageEvent_format(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_format (XClientMessageEvent *i)
+ {
+           return(i->format);
+ }
+-void set_XClientMessageEvent_format(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_format (XClientMessageEvent *i, int j)
+ {
+           i->format = j;
+ }
+-int  XClientMessageEvent_message_type(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_message_type (XClientMessageEvent *i)
+ {
+           return(i->message_type);
+ }
+-void set_XClientMessageEvent_message_type(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_message_type (XClientMessageEvent *i, int j)
+ {
+           i->message_type = j;
+ }
+-int  XClientMessageEvent_window(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_window (XClientMessageEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XClientMessageEvent_window(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_window (XClientMessageEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XClientMessageEvent_display(i)
+-XClientMessageEvent* i;
++long 
++XClientMessageEvent_display (XClientMessageEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XClientMessageEvent_display(i, j)
+-XClientMessageEvent* i;
+-long j;
++void 
++set_XClientMessageEvent_display (XClientMessageEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XClientMessageEvent_send_event(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_send_event (XClientMessageEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XClientMessageEvent_send_event(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_send_event (XClientMessageEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XClientMessageEvent_serial(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_serial (XClientMessageEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XClientMessageEvent_serial(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_serial (XClientMessageEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XClientMessageEvent_type(i)
+-XClientMessageEvent* i;
++int 
++XClientMessageEvent_type (XClientMessageEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XClientMessageEvent_type(i, j)
+-XClientMessageEvent* i;
+-int j;
++void 
++set_XClientMessageEvent_type (XClientMessageEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3635,110 +3400,103 @@ int j;
+ /********* XMappingEvent functions *****/
+-long  make_XMappingEvent (){
++long 
++make_XMappingEvent (void){
+           return ((long) calloc(1, sizeof(XMappingEvent)));
+ }
+-int  XMappingEvent_count(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_count (XMappingEvent *i)
+ {
+           return(i->count);
+ }
+-void set_XMappingEvent_count(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_count (XMappingEvent *i, int j)
+ {
+           i->count = j;
+ }
+-int XMappingEvent_first_keycode(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_first_keycode (XMappingEvent *i)
+ {
+           return(i->first_keycode);
+ }
+-void set_XMappingEvent_first_keycode(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_first_keycode (XMappingEvent *i, int j)
+ {
+           i->first_keycode = j;
+ }
+-int  XMappingEvent_request(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_request (XMappingEvent *i)
+ {
+           return(i->request);
+ }
+-void set_XMappingEvent_request(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_request (XMappingEvent *i, int j)
+ {
+           i->request = j;
+ }
+-int  XMappingEvent_window(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_window (XMappingEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XMappingEvent_window(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_window (XMappingEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XMappingEvent_display(i)
+-XMappingEvent* i;
++long 
++XMappingEvent_display (XMappingEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XMappingEvent_display(i, j)
+-XMappingEvent* i;
+-long j;
++void 
++set_XMappingEvent_display (XMappingEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XMappingEvent_send_event(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_send_event (XMappingEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XMappingEvent_send_event(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_send_event (XMappingEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XMappingEvent_serial(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_serial (XMappingEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XMappingEvent_serial(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_serial (XMappingEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XMappingEvent_type(i)
+-XMappingEvent* i;
++int 
++XMappingEvent_type (XMappingEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XMappingEvent_type(i, j)
+-XMappingEvent* i;
+-int j;
++void 
++set_XMappingEvent_type (XMappingEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3746,97 +3504,91 @@ int j;
+ /********* XErrorEvent functions *****/
+-long  make_XErrorEvent (){
++long 
++make_XErrorEvent (void){
+           return ((long) calloc(1, sizeof(XErrorEvent)));
+ }
+-char XErrorEvent_minor_code(i)
+-XErrorEvent* i;
++char 
++XErrorEvent_minor_code (XErrorEvent *i)
+ {
+           return(i->minor_code);
+ }
+-void set_XErrorEvent_minor_code(i, j)
+-XErrorEvent* i;
+-char j;
++void 
++set_XErrorEvent_minor_code (XErrorEvent *i, int j)
+ {
+           i->minor_code = j;
+ }
+-char XErrorEvent_request_code(i)
+-XErrorEvent* i;
++char 
++XErrorEvent_request_code (XErrorEvent *i)
+ {
+           return(i->request_code);
+ }
+-void set_XErrorEvent_request_code(i, j)
+-XErrorEvent* i;
+-char j;
++void 
++set_XErrorEvent_request_code (XErrorEvent *i, int j)
+ {
+           i->request_code = j;
+ }
+-char XErrorEvent_error_code(i)
+-XErrorEvent* i;
++char 
++XErrorEvent_error_code (XErrorEvent *i)
+ {
+           return(i->error_code);
+ }
+-void set_XErrorEvent_error_code(i, j)
+-XErrorEvent* i;
+-char j;
++void 
++set_XErrorEvent_error_code (XErrorEvent *i, int j)
+ {
+           i->error_code = j;
+ }
+-int  XErrorEvent_serial(i)
+-XErrorEvent* i;
++int 
++XErrorEvent_serial (XErrorEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XErrorEvent_serial(i, j)
+-XErrorEvent* i;
+-int j;
++void 
++set_XErrorEvent_serial (XErrorEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XErrorEvent_resourceid(i)
+-XErrorEvent* i;
++int 
++XErrorEvent_resourceid (XErrorEvent *i)
+ {
+           return(i->resourceid);
+ }
+-void set_XErrorEvent_resourceid(i, j)
+-XErrorEvent* i;
+-int j;
++void 
++set_XErrorEvent_resourceid (XErrorEvent *i, int j)
+ {
+           i->resourceid = j;
+ }
+-long  XErrorEvent_display(i)
+-XErrorEvent* i;
++long 
++XErrorEvent_display (XErrorEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XErrorEvent_display(i, j)
+-XErrorEvent* i;
+-long j;
++void 
++set_XErrorEvent_display (XErrorEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XErrorEvent_type(i)
+-XErrorEvent* i;
++int 
++XErrorEvent_type (XErrorEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XErrorEvent_type(i, j)
+-XErrorEvent* i;
+-int j;
++void 
++set_XErrorEvent_type (XErrorEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3844,71 +3596,67 @@ int j;
+ /********* XAnyEvent functions *****/
+-long  make_XAnyEvent (){
++long 
++make_XAnyEvent (void){
+           return ((long) calloc(1, sizeof(XAnyEvent)));
+ }
+-int  XAnyEvent_window(i)
+-XAnyEvent* i;
++int 
++XAnyEvent_window (XAnyEvent *i)
+ {
+           return(i->window);
+ }
+-void set_XAnyEvent_window(i, j)
+-XAnyEvent* i;
+-int j;
++void 
++set_XAnyEvent_window (XAnyEvent *i, int j)
+ {
+           i->window = j;
+ }
+-long  XAnyEvent_display(i)
+-XAnyEvent* i;
++long 
++XAnyEvent_display (XAnyEvent *i)
+ {
+           return((long) i->display);
+ }
+-void set_XAnyEvent_display(i, j)
+-XAnyEvent* i;
+-long j;
++void 
++set_XAnyEvent_display (XAnyEvent *i, long j)
+ {
+           i->display = (Display *) j;
+ }
+-int  XAnyEvent_send_event(i)
+-XAnyEvent* i;
++int 
++XAnyEvent_send_event (XAnyEvent *i)
+ {
+           return(i->send_event);
+ }
+-void set_XAnyEvent_send_event(i, j)
+-XAnyEvent* i;
+-int j;
++void 
++set_XAnyEvent_send_event (XAnyEvent *i, int j)
+ {
+           i->send_event = j;
+ }
+-int  XAnyEvent_serial(i)
+-XAnyEvent* i;
++int 
++XAnyEvent_serial (XAnyEvent *i)
+ {
+           return(i->serial);
+ }
+-void set_XAnyEvent_serial(i, j)
+-XAnyEvent* i;
+-int j;
++void 
++set_XAnyEvent_serial (XAnyEvent *i, int j)
+ {
+           i->serial = j;
+ }
+-int  XAnyEvent_type(i)
+-XAnyEvent* i;
++int 
++XAnyEvent_type (XAnyEvent *i)
+ {
+           return(i->type);
+ }
+-void set_XAnyEvent_type(i, j)
+-XAnyEvent* i;
+-int j;
++void 
++set_XAnyEvent_type (XAnyEvent *i, int j)
+ {
+           i->type = j;
+ }
+@@ -3916,6 +3664,7 @@ int j;
+ /********* XEvent functions *****/
+-long  make_XEvent (){
++long 
++make_XEvent (void){
+           return ((long) calloc(1, sizeof(XEvent)));
+ }
+--- gcl27-2.7.1.orig/xgcl-2/XStruct-2.c
++++ gcl27-2.7.1/xgcl-2/XStruct-2.c
+@@ -24,38 +24,37 @@
+ /********* _XQEvent functions *****/
++
+ #define NEED_EVENTS
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #include <X11/Xlibint.h>
+-long  make__XQEvent (){
++long make__XQEvent (void)
++{
+           return ((long) calloc(1, sizeof(_XQEvent)));
+ }
+-XEvent _XQEvent_event(i)
+-_XQEvent* i;
++XEvent _XQEvent_event (_XQEvent* i)
+ {
+           return(i->event);
+ }
+-void set__XQEvent_event(i, j)
+-_XQEvent* i;
+-XEvent j;
++void 
++set__XQEvent_event (_XQEvent *i, XEvent j)
+ {
+           i->event = j;
+ }
+-long _XQEvent_next(i)
+-_XQEvent* i;
++long 
++_XQEvent_next (_XQEvent *i)
+ {
+           return((long) i->next);
+ }
+-void set__XQEvent_next(i, j)
+-_XQEvent* i;
+-long j;
++void 
++set__XQEvent_next (_XQEvent *i, long j)
+ {
+           i->next = (struct _XSQEvent *) j;
+ }
+@@ -63,84 +62,79 @@ long j;
+ /********* XCharStruct functions *****/
+-long  make_XCharStruct (){
++long 
++make_XCharStruct (void){
+           return ((long) calloc(1, sizeof(XCharStruct)));
+ }
+-int  XCharStruct_attributes(i)
+-XCharStruct* i;
++int 
++XCharStruct_attributes (XCharStruct *i)
+ {
+           return(i->attributes);
+ }
+-void set_XCharStruct_attributes(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_attributes (XCharStruct *i, int j)
+ {
+           i->attributes = j;
+ }
+-int  XCharStruct_descent(i)
+-XCharStruct* i;
++int 
++XCharStruct_descent (XCharStruct *i)
+ {
+           return(i->descent);
+ }
+-void set_XCharStruct_descent(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_descent (XCharStruct *i, int j)
+ {
+           i->descent = j;
+ }
+-int  XCharStruct_ascent(i)
+-XCharStruct* i;
++int 
++XCharStruct_ascent (XCharStruct *i)
+ {
+           return(i->ascent);
+ }
+-void set_XCharStruct_ascent(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_ascent (XCharStruct *i, int j)
+ {
+           i->ascent = j;
+ }
+-int  XCharStruct_width(i)
+-XCharStruct* i;
++int 
++XCharStruct_width (XCharStruct *i)
+ {
+           return(i->width);
+ }
+-void set_XCharStruct_width(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_width (XCharStruct *i, int j)
+ {
+           i->width = j;
+ }
+-int  XCharStruct_rbearing(i)
+-XCharStruct* i;
++int 
++XCharStruct_rbearing (XCharStruct *i)
+ {
+           return(i->rbearing);
+ }
+-void set_XCharStruct_rbearing(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_rbearing (XCharStruct *i, int j)
+ {
+           i->rbearing = j;
+ }
+-int  XCharStruct_lbearing(i)
+-XCharStruct* i;
++int 
++XCharStruct_lbearing (XCharStruct *i)
+ {
+           return(i->lbearing);
+ }
+-void set_XCharStruct_lbearing(i, j)
+-XCharStruct* i;
+-int j;
++void 
++set_XCharStruct_lbearing (XCharStruct *i, int j)
+ {
+           i->lbearing = j;
+ }
+@@ -148,32 +142,31 @@ int j;
+ /********* XFontProp functions *****/
+-long  make_XFontProp (){
++long 
++make_XFontProp (void){
+           return ((long) calloc(1, sizeof(XFontProp)));
+ }
+-int  XFontProp_card32(i)
+-XFontProp* i;
++int 
++XFontProp_card32 (XFontProp *i)
+ {
+           return(i->card32);
+ }
+-void set_XFontProp_card32(i, j)
+-XFontProp* i;
+-int j;
++void 
++set_XFontProp_card32 (XFontProp *i, int j)
+ {
+           i->card32 = j;
+ }
+-int  XFontProp_name(i)
+-XFontProp* i;
++int 
++XFontProp_name (XFontProp *i)
+ {
+           return(i->name);
+ }
+-void set_XFontProp_name(i, j)
+-XFontProp* i;
+-int j;
++void 
++set_XFontProp_name (XFontProp *i, int j)
+ {
+           i->name = j;
+ }
+@@ -181,211 +174,196 @@ int j;
+ /********* XFontStruct functions *****/
+-long  make_XFontStruct (){
++long 
++make_XFontStruct (void){
+           return ((long) calloc(1, sizeof(XFontStruct)));
+ }
+-int  XFontStruct_descent(i)
+-XFontStruct* i;
++int 
++XFontStruct_descent (XFontStruct *i)
+ {
+           return(i->descent);
+ }
+-void set_XFontStruct_descent(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_descent (XFontStruct *i, int j)
+ {
+           i->descent = j;
+ }
+-int  XFontStruct_ascent(i)
+-XFontStruct* i;
++int 
++XFontStruct_ascent (XFontStruct *i)
+ {
+           return(i->ascent);
+ }
+-void set_XFontStruct_ascent(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_ascent (XFontStruct *i, int j)
+ {
+           i->ascent = j;
+ }
+-long  XFontStruct_per_char(i)
+-XFontStruct* i;
++long 
++XFontStruct_per_char (XFontStruct *i)
+ {
+           return((long) i->per_char);
+ }
+-void set_XFontStruct_per_char(i, j)
+-XFontStruct* i;
+-long j;
++void 
++set_XFontStruct_per_char (XFontStruct *i, long j)
+ {
+           i->per_char = (XCharStruct *) j;
+ }
+-long XFontStruct_max_bounds(i)
+-XFontStruct* i;
++long 
++XFontStruct_max_bounds (XFontStruct *i)
+ {
+           return((long) &i->max_bounds);
+ }
+-long XFontStruct_min_bounds(i)
+-XFontStruct* i;
++long 
++XFontStruct_min_bounds (XFontStruct *i)
+ {
+           return((long) &i->min_bounds);
+ }
+-void set_XFontStruct_max_bounds(i, j)
+-XFontStruct* i;
+-XCharStruct j;
++void 
++set_XFontStruct_max_bounds (XFontStruct *i, XCharStruct j)
+ {
+           i->max_bounds = j;
+ }
+-void set_XFontStruct_min_bounds(i, j)
+-XFontStruct* i;
+-XCharStruct j;
++void 
++set_XFontStruct_min_bounds (XFontStruct *i, XCharStruct j)
+ {
+           i->min_bounds = j;
+ }
+-long  XFontStruct_properties(i)
+-XFontStruct* i;
++long 
++XFontStruct_properties (XFontStruct *i)
+ {
+           return((long) i->properties);
+ }
+-void set_XFontStruct_properties(i, j)
+-XFontStruct* i;
+-long j;
++void 
++set_XFontStruct_properties (XFontStruct *i, long j)
+ {
+           i->properties = (XFontProp *) j;
+ }
+-int  XFontStruct_n_properties(i)
+-XFontStruct* i;
++int 
++XFontStruct_n_properties (XFontStruct *i)
+ {
+           return(i->n_properties);
+ }
+-void set_XFontStruct_n_properties(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_n_properties (XFontStruct *i, int j)
+ {
+           i->n_properties = j;
+ }
+-int  XFontStruct_default_char(i)
+-XFontStruct* i;
++int 
++XFontStruct_default_char (XFontStruct *i)
+ {
+           return(i->default_char);
+ }
+-void set_XFontStruct_default_char(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_default_char (XFontStruct *i, int j)
+ {
+           i->default_char = j;
+ }
+-int  XFontStruct_all_chars_exist(i)
+-XFontStruct* i;
++int 
++XFontStruct_all_chars_exist (XFontStruct *i)
+ {
+           return(i->all_chars_exist);
+ }
+-void set_XFontStruct_all_chars_exist(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_all_chars_exist (XFontStruct *i, int j)
+ {
+           i->all_chars_exist = j;
+ }
+-int  XFontStruct_max_byte1(i)
+-XFontStruct* i;
++int 
++XFontStruct_max_byte1 (XFontStruct *i)
+ {
+           return(i->max_byte1);
+ }
+-void set_XFontStruct_max_byte1(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_max_byte1 (XFontStruct *i, int j)
+ {
+           i->max_byte1 = j;
+ }
+-int  XFontStruct_min_byte1(i)
+-XFontStruct* i;
++int 
++XFontStruct_min_byte1 (XFontStruct *i)
+ {
+           return(i->min_byte1);
+ }
+-void set_XFontStruct_min_byte1(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_min_byte1 (XFontStruct *i, int j)
+ {
+           i->min_byte1 = j;
+ }
+-int  XFontStruct_max_char_or_byte2(i)
+-XFontStruct* i;
++int 
++XFontStruct_max_char_or_byte2 (XFontStruct *i)
+ {
+           return(i->max_char_or_byte2);
+ }
+-void set_XFontStruct_max_char_or_byte2(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_max_char_or_byte2 (XFontStruct *i, int j)
+ {
+           i->max_char_or_byte2 = j;
+ }
+-int  XFontStruct_min_char_or_byte2(i)
+-XFontStruct* i;
++int 
++XFontStruct_min_char_or_byte2 (XFontStruct *i)
+ {
+           return(i->min_char_or_byte2);
+ }
+-void set_XFontStruct_min_char_or_byte2(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_min_char_or_byte2 (XFontStruct *i, int j)
+ {
+           i->min_char_or_byte2 = j;
+ }
+-int  XFontStruct_direction(i)
+-XFontStruct* i;
++int 
++XFontStruct_direction (XFontStruct *i)
+ {
+           return(i->direction);
+ }
+-void set_XFontStruct_direction(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_direction (XFontStruct *i, int j)
+ {
+           i->direction = j;
+ }
+-int  XFontStruct_fid(i)
+-XFontStruct* i;
++int 
++XFontStruct_fid (XFontStruct *i)
+ {
+           return(i->fid);
+ }
+-void set_XFontStruct_fid(i, j)
+-XFontStruct* i;
+-int j;
++void 
++set_XFontStruct_fid (XFontStruct *i, int j)
+ {
+           i->fid = j;
+ }
+-long  XFontStruct_ext_data(i)
+-XFontStruct* i;
++long 
++XFontStruct_ext_data (XFontStruct *i)
+ {
+           return((long) i->ext_data);
+ }
+-void set_XFontStruct_ext_data(i, j)
+-XFontStruct* i;
+-long j;
++void 
++set_XFontStruct_ext_data (XFontStruct *i, long j)
+ {
+           i->ext_data = (XExtData *) j;
+ }
+@@ -393,58 +371,55 @@ long j;
+ /********* XTextItem functions *****/
+-long  make_XTextItem (){
++long 
++make_XTextItem (void){
+           return ((long) calloc(1, sizeof(XTextItem)));
+ }
+-int  XTextItem_font(i)
+-XTextItem* i;
++int 
++XTextItem_font (XTextItem *i)
+ {
+           return(i->font);
+ }
+-void set_XTextItem_font(i, j)
+-XTextItem* i;
+-int j;
++void 
++set_XTextItem_font (XTextItem *i, int j)
+ {
+           i->font = j;
+ }
+-int  XTextItem_delta(i)
+-XTextItem* i;
++int 
++XTextItem_delta (XTextItem *i)
+ {
+           return(i->delta);
+ }
+-void set_XTextItem_delta(i, j)
+-XTextItem* i;
+-int j;
++void 
++set_XTextItem_delta (XTextItem *i, int j)
+ {
+           i->delta = j;
+ }
+-int  XTextItem_nchars(i)
+-XTextItem* i;
++int 
++XTextItem_nchars (XTextItem *i)
+ {
+           return(i->nchars);
+ }
+-void set_XTextItem_nchars(i, j)
+-XTextItem* i;
+-int j;
++void 
++set_XTextItem_nchars (XTextItem *i, int j)
+ {
+           i->nchars = j;
+ }
+-long  XTextItem_chars(i)
+-XTextItem* i;
++long 
++XTextItem_chars (XTextItem *i)
+ {
+           return((long) i->chars);
+ }
+-void set_XTextItem_chars(i, j)
+-XTextItem* i;
+-long j;
++void 
++set_XTextItem_chars (XTextItem *i, long j)
+ {
+           i->chars = (char *) j;
+ }
+@@ -452,32 +427,31 @@ long j;
+ /********* XChar2b functions *****/
+-long  make_XChar2b (){
++long 
++make_XChar2b (void){
+           return ((long) calloc(1, sizeof(XChar2b)));
+ }
+-char XChar2b_byte2(i)
+-XChar2b* i;
++char 
++XChar2b_byte2 (XChar2b *i)
+ {
+           return(i->byte2);
+ }
+-void set_XChar2b_byte2(i, j)
+-XChar2b* i;
+-char j;
++void 
++set_XChar2b_byte2 (XChar2b *i, int j)
+ {
+           i->byte2 = j;
+ }
+-char XChar2b_byte1(i)
+-XChar2b* i;
++char 
++XChar2b_byte1 (XChar2b *i)
+ {
+           return(i->byte1);
+ }
+-void set_XChar2b_byte1(i, j)
+-XChar2b* i;
+-char j;
++void 
++set_XChar2b_byte1 (XChar2b *i, int j)
+ {
+           i->byte1 = j;
+ }
+@@ -485,58 +459,55 @@ char j;
+ /********* XTextItem16 functions *****/
+-long  make_XTextItem16 (){
++long 
++make_XTextItem16 (void){
+           return ((long) calloc(1, sizeof(XTextItem16)));
+ }
+-int  XTextItem16_font(i)
+-XTextItem16* i;
++int 
++XTextItem16_font (XTextItem16 *i)
+ {
+           return(i->font);
+ }
+-void set_XTextItem16_font(i, j)
+-XTextItem16* i;
+-int j;
++void 
++set_XTextItem16_font (XTextItem16 *i, int j)
+ {
+           i->font = j;
+ }
+-int  XTextItem16_delta(i)
+-XTextItem16* i;
++int 
++XTextItem16_delta (XTextItem16 *i)
+ {
+           return(i->delta);
+ }
+-void set_XTextItem16_delta(i, j)
+-XTextItem16* i;
+-int j;
++void 
++set_XTextItem16_delta (XTextItem16 *i, int j)
+ {
+           i->delta = j;
+ }
+-int  XTextItem16_nchars(i)
+-XTextItem16* i;
++int 
++XTextItem16_nchars (XTextItem16 *i)
+ {
+           return(i->nchars);
+ }
+-void set_XTextItem16_nchars(i, j)
+-XTextItem16* i;
+-int j;
++void 
++set_XTextItem16_nchars (XTextItem16 *i, int j)
+ {
+           i->nchars = j;
+ }
+-long  XTextItem16_chars(i)
+-XTextItem16* i;
++long 
++XTextItem16_chars (XTextItem16 *i)
+ {
+           return((long) i->chars);
+ }
+-void set_XTextItem16_chars(i, j)
+-XTextItem16* i;
+-long j;
++void 
++set_XTextItem16_chars (XTextItem16 *i, long j)
+ {
+           i->chars = (XChar2b *) j;
+ }
+@@ -544,71 +515,67 @@ long j;
+ /********* XEDataObject functions *****/
+-long  make_XEDataObject (){
++long 
++make_XEDataObject (void){
+           return ((long) calloc(1, sizeof(XEDataObject)));
+ }
+-long  XEDataObject_font(i)
+-XEDataObject* i;
++long 
++XEDataObject_font (XEDataObject *i)
+ {
+           return((long) i->font);
+ }
+-void set_XEDataObject_font(i, j)
+-XEDataObject* i;
+-long j;
++void 
++set_XEDataObject_font (XEDataObject *i, long j)
+ {
+           i->font = (XFontStruct *) j;
+ }
+-long  XEDataObject_pixmap_format(i)
+-XEDataObject* i;
++long 
++XEDataObject_pixmap_format (XEDataObject *i)
+ {
+           return((long) i->pixmap_format);
+ }
+-void set_XEDataObject_pixmap_format(i, j)
+-XEDataObject* i;
+-long j;
++void 
++set_XEDataObject_pixmap_format (XEDataObject *i, long j)
+ {
+           i->pixmap_format = (ScreenFormat *) j;
+ }
+-long  XEDataObject_screen(i)
+-XEDataObject* i;
++long 
++XEDataObject_screen (XEDataObject *i)
+ {
+           return((long) i->screen);
+ }
+-void set_XEDataObject_screen(i, j)
+-XEDataObject* i;
+-long j;
++void 
++set_XEDataObject_screen (XEDataObject *i, long j)
+ {
+           i->screen = (Screen *) j;
+ }
+-long  XEDataObject_visual(i)
+-XEDataObject* i;
++long 
++XEDataObject_visual (XEDataObject *i)
+ {
+           return((long) i->visual);
+ }
+-void set_XEDataObject_visual(i, j)
+-XEDataObject* i;
+-long j;
++void 
++set_XEDataObject_visual (XEDataObject *i, long j)
+ {
+           i->visual = (Visual *) j;
+ }
+-GC   XEDataObject_gc(i)
+-XEDataObject* i;
++GC 
++XEDataObject_gc (XEDataObject *i)
+ {
+           return(i->gc);
+ }
+-void set_XEDataObject_gc(i, j)
+-XEDataObject* i;
+-GC j;
++void 
++set_XEDataObject_gc (XEDataObject *i, GC j)
+ {
+           i->gc = j;
+ }
+@@ -616,242 +583,189 @@ GC j;
+ /********* XSizeHints functions *****/
+-long  make_XSizeHints (){
++long 
++make_XSizeHints (void){
+           return ((long) calloc(1, sizeof(XSizeHints)));
+ }
+-int  XSizeHints_win_gravity(i)
+-XSizeHints *i;
++int  XSizeHints_win_gravity(XSizeHints *i)
+ {
+           return(i->win_gravity);
+ }
+-void set_XSizeHints_win_gravity(i, j)
+-XSizeHints *i;
+-int j;
++void set_XSizeHints_win_gravity(XSizeHints *i,int j)
+ {
+           i->win_gravity = j;
+ }
+-int  XSizeHints_base_height(i)
+-XSizeHints* i;
++int  XSizeHints_base_height(XSizeHints* i)
+ {
+           return(i->base_height);
+ }
+-void set_XSizeHints_base_height(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_base_height(XSizeHints* i,int j)
+ {
+           i->base_height = j;
+ }
+-int  XSizeHints_base_width(i)
+-XSizeHints* i;
++int  XSizeHints_base_width(XSizeHints* i)
+ {
+           return(i->base_width);
+ }
+-void set_XSizeHints_base_width(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_base_width(XSizeHints* i,int j)
+ {
+           i->base_width = j;
+ }
+-int  XSizeHints_height_inc(i)
+-XSizeHints* i;
++int  XSizeHints_height_inc(XSizeHints* i)
+ {
+           return(i->height_inc);
+ }
+-void set_XSizeHints_height_inc(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_height_inc(XSizeHints* i,int j)
+ {
+           i->height_inc = j;
+ }
+-int  XSizeHints_width_inc(i)
+-XSizeHints* i;
++int  XSizeHints_width_inc(XSizeHints* i)
+ {
+           return(i->width_inc);
+ }
+-void set_XSizeHints_width_inc(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_width_inc(XSizeHints* i,int j)
+ {
+           i->width_inc = j;
+ }
+-int  XSizeHints_max_height(i)
+-XSizeHints* i;
++int  XSizeHints_max_height(XSizeHints* i)
+ {
+           return(i->max_height);
+ }
+-void set_XSizeHints_max_height(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_max_height(XSizeHints* i,int j)
+ {
+           i->max_height = j;
+ }
+-int  XSizeHints_max_width(i)
+-XSizeHints* i;
++int  XSizeHints_max_width(XSizeHints* i)
+ {
+           return(i->max_width);
+ }
+-void set_XSizeHints_max_width(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_max_width(XSizeHints* i,int j)
+ {
+           i->max_width = j;
+ }
+-int  XSizeHints_min_height(i)
+-XSizeHints* i;
++int  XSizeHints_min_height(XSizeHints* i)
+ {
+           return(i->min_height);
+ }
+-void set_XSizeHints_min_height(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_min_height(XSizeHints* i,int j)
+ {
+           i->min_height = j;
+ }
+-int  XSizeHints_min_width(i)
+-XSizeHints* i;
++int  XSizeHints_min_width(XSizeHints* i)
+ {
+           return(i->min_width);
+ }
+-void set_XSizeHints_min_width(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_min_width(XSizeHints* i,int j)
+ {
+           i->min_width = j;
+ }
+-int  XSizeHints_height(i)
+-XSizeHints* i;
++int  XSizeHints_height(XSizeHints* i)
+ {
+           return(i->height);
+ }
+-void set_XSizeHints_height(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_height(XSizeHints* i,int j)
+ {
+           i->height = j;
+ }
+-int  XSizeHints_width(i)
+-XSizeHints* i;
++int  XSizeHints_width(XSizeHints* i)
+ {
+           return(i->width);
+ }
+-void set_XSizeHints_width(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_width(XSizeHints* i,int j)
+ {
+           i->width = j;
+ }
+-int  XSizeHints_y(i)
+-XSizeHints* i;
++int  XSizeHints_y(XSizeHints* i)
+ {
+           return(i->y);
+ }
+-void set_XSizeHints_y(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_y(XSizeHints* i,int j)
+ {
+           i->y = j;
+ }
+-int  XSizeHints_x(i)
+-XSizeHints* i;
++int  XSizeHints_x(XSizeHints* i)
+ {
+           return(i->x);
+ }
+-void set_XSizeHints_x(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_x(XSizeHints* i,int j)
+ {
+           i->x = j;
+ }
+-int  XSizeHints_flags(i)
+-XSizeHints* i;
++int  XSizeHints_flags(XSizeHints* i)
+ {
+           return(i->flags);
+ }
+-void set_XSizeHints_flags(i, j)
+-XSizeHints* i;
+-int j;
++void set_XSizeHints_flags(XSizeHints* i,int j)
+ {
+           i->flags = j;
+ }
+-int  XSizeHints_max_aspect_x(i)
+-XSizeHints* i;
++int  XSizeHints_max_aspect_x(XSizeHints* i)
+ {
+           return(i->max_aspect.x);
+ }
+-void  set_XSizeHints_max_aspect_x(i, j)
+-XSizeHints* i;
+-int   j;
++void  set_XSizeHints_max_aspect_x(XSizeHints* i,int j)
+ {
+           i->max_aspect.x = j;
+ }
+-int  XSizeHints_max_aspect_y(i)
+-XSizeHints* i;
++int  XSizeHints_max_aspect_y(XSizeHints* i)
+ {
+           return(i->max_aspect.y);
+ }
+-void  set_XSizeHints_max_aspect_y(i, j)
+-XSizeHints* i;
+-int   j;
++void  set_XSizeHints_max_aspect_y(XSizeHints* i,int j)
+ {
+           i->max_aspect.y = j;
+ }
+-int  XSizeHints_min_aspect_x(i)
+-XSizeHints* i;
++int  XSizeHints_min_aspect_x(XSizeHints* i)
+ {
+           return(i->min_aspect.x);
+ }
+-void  set_XSizeHints_min_aspect_x(i, j)
+-XSizeHints* i;
+-int   j;
++void  set_XSizeHints_min_aspect_x(XSizeHints* i,int j)
+ {
+           i->min_aspect.x = j;
+ }
+-int  XSizeHints_min_aspect_y(i)
+-XSizeHints* i;
++int  XSizeHints_min_aspect_y(XSizeHints* i)
+ {
+           return(i->min_aspect.y);
+ }
+-void  set_XSizeHints_min_aspect_y(i, j)
+-XSizeHints* i;
+-int   j;
++void  set_XSizeHints_min_aspect_y(XSizeHints* i,int j)
+ {
+           i->min_aspect.y = j;
+ }
+@@ -859,123 +773,115 @@ int    j;
+ /********* XWMHints functions *****/
+-long  make_XWMHints (){
++long 
++make_XWMHints (void){
+           return ((long) calloc(1, sizeof(XWMHints)));
+ }
+-int  XWMHints_window_group(i)
+-XWMHints* i;
++int 
++XWMHints_window_group (XWMHints *i)
+ {
+           return(i->window_group);
+ }
+-void set_XWMHints_window_group(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_window_group (XWMHints *i, int j)
+ {
+           i->window_group = j;
+ }
+-int  XWMHints_icon_mask(i)
+-XWMHints* i;
++int 
++XWMHints_icon_mask (XWMHints *i)
+ {
+           return(i->icon_mask);
+ }
+-void set_XWMHints_icon_mask(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_icon_mask (XWMHints *i, int j)
+ {
+           i->icon_mask = j;
+ }
+-int  XWMHints_icon_y(i)
+-XWMHints* i;
++int 
++XWMHints_icon_y (XWMHints *i)
+ {
+           return(i->icon_y);
+ }
+-void set_XWMHints_icon_y(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_icon_y (XWMHints *i, int j)
+ {
+           i->icon_y = j;
+ }
+-int  XWMHints_icon_x(i)
+-XWMHints* i;
++int 
++XWMHints_icon_x (XWMHints *i)
+ {
+           return(i->icon_x);
+ }
+-void set_XWMHints_icon_x(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_icon_x (XWMHints *i, int j)
+ {
+           i->icon_x = j;
+ }
+-int  XWMHints_icon_window(i)
+-XWMHints* i;
++int 
++XWMHints_icon_window (XWMHints *i)
+ {
+           return(i->icon_window);
+ }
+-void set_XWMHints_icon_window(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_icon_window (XWMHints *i, int j)
+ {
+           i->icon_window = j;
+ }
+-int  XWMHints_icon_pixmap(i)
+-XWMHints* i;
++int 
++XWMHints_icon_pixmap (XWMHints *i)
+ {
+           return(i->icon_pixmap);
+ }
+-void set_XWMHints_icon_pixmap(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_icon_pixmap (XWMHints *i, int j)
+ {
+           i->icon_pixmap = j;
+ }
+-int  XWMHints_initial_state(i)
+-XWMHints* i;
++int 
++XWMHints_initial_state (XWMHints *i)
+ {
+           return(i->initial_state);
+ }
+-void set_XWMHints_initial_state(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_initial_state (XWMHints *i, int j)
+ {
+           i->initial_state = j;
+ }
+-int  XWMHints_input(i)
+-XWMHints* i;
++int 
++XWMHints_input (XWMHints *i)
+ {
+           return(i->input);
+ }
+-void set_XWMHints_input(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_input (XWMHints *i, int j)
+ {
+           i->input = j;
+ }
+-int  XWMHints_flags(i)
+-XWMHints* i;
++int 
++XWMHints_flags (XWMHints *i)
+ {
+           return(i->flags);
+ }
+-void set_XWMHints_flags(i, j)
+-XWMHints* i;
+-int j;
++void 
++set_XWMHints_flags (XWMHints *i, int j)
+ {
+           i->flags = j;
+ }
+@@ -983,58 +889,55 @@ int j;
+ /********* XTextProperty functions *****/
+-long  make_XTextProperty (){
++long 
++make_XTextProperty (void){
+           return ((long) calloc(1, sizeof(XTextProperty)));
+ }
+-int  XTextProperty_nitems(i)
+-XTextProperty *i;
++int 
++XTextProperty_nitems (XTextProperty *i)
+ {
+           return(i->nitems);
+ }
+-void set_XTextProperty_nitems(i, j)
+-XTextProperty* i;
+-int j;
++void 
++set_XTextProperty_nitems (XTextProperty *i, int j)
+ {
+           i->nitems = j;
+ }
+-int  XTextProperty_format(i)
+-XTextProperty* i;
++int 
++XTextProperty_format (XTextProperty *i)
+ {
+           return(i->format);
+ }
+-void set_XTextProperty_format(i, j)
+-XTextProperty* i;
+-int j;
++void 
++set_XTextProperty_format (XTextProperty *i, int j)
+ {
+           i->format = j;
+ }
+-int  XTextProperty_encoding(i)
+-XTextProperty* i;
++int 
++XTextProperty_encoding (XTextProperty *i)
+ {
+           return(i->encoding);
+ }
+-void set_XTextProperty_encoding(i, j)
+-XTextProperty* i;
+-int j;
++void 
++set_XTextProperty_encoding (XTextProperty *i, int j)
+ {
+           i->encoding = j;
+ }
+-long  XTextProperty_value(i)
+-XTextProperty* i;
++long 
++XTextProperty_value (XTextProperty *i)
+ {
+           return((long) i->value);
+ }
+-void set_XTextProperty_value(i, j)
+-XTextProperty* i;
+-long j;
++void 
++set_XTextProperty_value (XTextProperty *i, long j)
+ {
+           i->value = (unsigned char *) j;
+ }
+@@ -1042,84 +945,79 @@ long j;
+ /********* XIconSize functions *****/
+-long  make_XIconSize (){
++long 
++make_XIconSize (void){
+           return ((long) calloc(1, sizeof(XIconSize)));
+ }
+-int  XIconSize_height_inc(i)
+-XIconSize* i;
++int 
++XIconSize_height_inc (XIconSize *i)
+ {
+           return(i->height_inc);
+ }
+-void set_XIconSize_height_inc(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_height_inc (XIconSize *i, int j)
+ {
+           i->height_inc = j;
+ }
+-int  XIconSize_width_inc(i)
+-XIconSize* i;
++int 
++XIconSize_width_inc (XIconSize *i)
+ {
+           return(i->width_inc);
+ }
+-void set_XIconSize_width_inc(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_width_inc (XIconSize *i, int j)
+ {
+           i->width_inc = j;
+ }
+-int  XIconSize_max_height(i)
+-XIconSize* i;
++int 
++XIconSize_max_height (XIconSize *i)
+ {
+           return(i->max_height);
+ }
+-void set_XIconSize_max_height(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_max_height (XIconSize *i, int j)
+ {
+           i->max_height = j;
+ }
+-int  XIconSize_max_width(i)
+-XIconSize* i;
++int 
++XIconSize_max_width (XIconSize *i)
+ {
+           return(i->max_width);
+ }
+-void set_XIconSize_max_width(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_max_width (XIconSize *i, int j)
+ {
+           i->max_width = j;
+ }
+-int  XIconSize_min_height(i)
+-XIconSize* i;
++int 
++XIconSize_min_height (XIconSize *i)
+ {
+           return(i->min_height);
+ }
+-void set_XIconSize_min_height(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_min_height (XIconSize *i, int j)
+ {
+           i->min_height = j;
+ }
+-int  XIconSize_min_width(i)
+-XIconSize* i;
++int 
++XIconSize_min_width (XIconSize *i)
+ {
+           return(i->min_width);
+ }
+-void set_XIconSize_min_width(i, j)
+-XIconSize* i;
+-int j;
++void 
++set_XIconSize_min_width (XIconSize *i, int j)
+ {
+           i->min_width = j;
+ }
+@@ -1127,32 +1025,31 @@ int j;
+ /********* XClassHint functions *****/
+-long  make_XClassHint (){
++long 
++make_XClassHint (void){
+           return ((long) calloc(1, sizeof(XClassHint)));
+ }
+-long  XClassHint_res_class(i)
+-XClassHint* i;
++long 
++XClassHint_res_class (XClassHint *i)
+ {
+           return((long) i->res_class);
+ }
+-void set_XClassHint_res_class(i, j)
+-XClassHint* i;
+-long j;
++void 
++set_XClassHint_res_class (XClassHint *i, long j)
+ {
+           i->res_class = (char *) j;
+ }
+-long  XClassHint_res_name(i)
+-XClassHint* i;
++long 
++XClassHint_res_name (XClassHint *i)
+ {
+           return((long) i->res_name);
+ }
+-void set_XClassHint_res_name(i, j)
+-XClassHint* i;
+-long j;
++void 
++set_XClassHint_res_name (XClassHint *i, long j)
+ {
+           i->res_name = (char *) j;
+ }
+@@ -1160,32 +1057,31 @@ long j;
+ /********* XComposeStatus functions *****/
+-long  make_XComposeStatus (){
++long 
++make_XComposeStatus (void){
+           return ((long) calloc(1, sizeof(XComposeStatus)));
+ }
+-int  XComposeStatus_chars_matched(i)
+-XComposeStatus* i;
++int 
++XComposeStatus_chars_matched (XComposeStatus *i)
+ {
+           return(i->chars_matched);
+ }
+-void set_XComposeStatus_chars_matched(i, j)
+-XComposeStatus* i;
+-int j;
++void 
++set_XComposeStatus_chars_matched (XComposeStatus *i, int j)
+ {
+           i->chars_matched = j;
+ }
+-long  XComposeStatus_compose_ptr(i)
+-XComposeStatus* i;
++long 
++XComposeStatus_compose_ptr (XComposeStatus *i)
+ {
+           return((long) i->compose_ptr);
+ }
+-void set_XComposeStatus_compose_ptr(i, j)
+-XComposeStatus* i;
+-long j;
++void 
++set_XComposeStatus_compose_ptr (XComposeStatus *i, long j)
+ {
+           i->compose_ptr = (XPointer) j;
+ }
+@@ -1193,136 +1089,127 @@ long j;
+ /********* XVisualInfo functions *****/
+-long  make_XVisualInfo (){
++long 
++make_XVisualInfo (void){
+           return ((long) calloc(1, sizeof(XVisualInfo)));
+ }
+-int  XVisualInfo_bits_per_rgb(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_bits_per_rgb (XVisualInfo *i)
+ {
+           return(i->bits_per_rgb);
+ }
+-void set_XVisualInfo_bits_per_rgb(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_bits_per_rgb (XVisualInfo *i, int j)
+ {
+           i->bits_per_rgb = j;
+ }
+-int  XVisualInfo_colormap_size(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_colormap_size (XVisualInfo *i)
+ {
+           return(i->colormap_size);
+ }
+-void set_XVisualInfo_colormap_size(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_colormap_size (XVisualInfo *i, int j)
+ {
+           i->colormap_size = j;
+ }
+-int  XVisualInfo_blue_mask(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_blue_mask (XVisualInfo *i)
+ {
+           return(i->blue_mask);
+ }
+-void set_XVisualInfo_blue_mask(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_blue_mask (XVisualInfo *i, int j)
+ {
+           i->blue_mask = j;
+ }
+-int  XVisualInfo_green_mask(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_green_mask (XVisualInfo *i)
+ {
+           return(i->green_mask);
+ }
+-void set_XVisualInfo_green_mask(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_green_mask (XVisualInfo *i, int j)
+ {
+           i->green_mask = j;
+ }
+-int  XVisualInfo_red_mask(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_red_mask (XVisualInfo *i)
+ {
+           return(i->red_mask);
+ }
+-void set_XVisualInfo_red_mask(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_red_mask (XVisualInfo *i, int j)
+ {
+           i->red_mask = j;
+ }
+-int  XVisualInfo_class(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_class (XVisualInfo *i)
+ {
+           return(i->class);
+ }
+-void set_XVisualInfo_class(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_class (XVisualInfo *i, int j)
+ {
+           i->class = j;
+ }
+-int  XVisualInfo_depth(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_depth (XVisualInfo *i)
+ {
+           return(i->depth);
+ }
+-void set_XVisualInfo_depth(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_depth (XVisualInfo *i, int j)
+ {
+           i->depth = j;
+ }
+-int  XVisualInfo_screen(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_screen (XVisualInfo *i)
+ {
+           return(i->screen);
+ }
+-void set_XVisualInfo_screen(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_screen (XVisualInfo *i, int j)
+ {
+           i->screen = j;
+ }
+-int  XVisualInfo_visualid(i)
+-XVisualInfo* i;
++int 
++XVisualInfo_visualid (XVisualInfo *i)
+ {
+           return(i->visualid);
+ }
+-void set_XVisualInfo_visualid(i, j)
+-XVisualInfo* i;
+-int j;
++void 
++set_XVisualInfo_visualid (XVisualInfo *i, int j)
+ {
+           i->visualid = j;
+ }
+-long  XVisualInfo_visual(i)
+-XVisualInfo* i;
++long 
++XVisualInfo_visual (XVisualInfo *i)
+ {
+           return((long) i->visual);
+ }
+-void set_XVisualInfo_visual(i, j)
+-XVisualInfo* i;
+-long j;
++void 
++set_XVisualInfo_visual (XVisualInfo *i, long j)
+ {
+           i->visual = (Visual *) j;
+ }
+@@ -1330,136 +1217,127 @@ long j;
+ /********* XStandardColormap functions *****/
+-long  make_XStandardColormap (){
++long 
++make_XStandardColormap (void){
+           return ((long) calloc(1, sizeof(XStandardColormap)));
+ }
+-int  XStandardColormap_killid(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_killid (XStandardColormap *i)
+ {
+           return(i->killid);
+ }
+-void set_XStandardColormap_killid(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_killid (XStandardColormap *i, int j)
+ {
+           i->killid = j;
+ }
+-int  XStandardColormap_visualid(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_visualid (XStandardColormap *i)
+ {
+           return(i->visualid);
+ }
+-void set_XStandardColormap_visualid(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_visualid (XStandardColormap *i, int j)
+ {
+           i->visualid = j;
+ }
+-int  XStandardColormap_base_pixel(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_base_pixel (XStandardColormap *i)
+ {
+           return(i->base_pixel);
+ }
+-void set_XStandardColormap_base_pixel(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_base_pixel (XStandardColormap *i, int j)
+ {
+           i->base_pixel = j;
+ }
+-int  XStandardColormap_blue_mult(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_blue_mult (XStandardColormap *i)
+ {
+           return(i->blue_mult);
+ }
+-void set_XStandardColormap_blue_mult(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_blue_mult (XStandardColormap *i, int j)
+ {
+           i->blue_mult = j;
+ }
+-int  XStandardColormap_blue_max(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_blue_max (XStandardColormap *i)
+ {
+           return(i->blue_max);
+ }
+-void set_XStandardColormap_blue_max(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_blue_max (XStandardColormap *i, int j)
+ {
+           i->blue_max = j;
+ }
+-int  XStandardColormap_green_mult(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_green_mult (XStandardColormap *i)
+ {
+           return(i->green_mult);
+ }
+-void set_XStandardColormap_green_mult(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_green_mult (XStandardColormap *i, int j)
+ {
+           i->green_mult = j;
+ }
+-int  XStandardColormap_green_max(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_green_max (XStandardColormap *i)
+ {
+           return(i->green_max);
+ }
+-void set_XStandardColormap_green_max(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_green_max (XStandardColormap *i, int j)
+ {
+           i->green_max = j;
+ }
+-int  XStandardColormap_red_mult(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_red_mult (XStandardColormap *i)
+ {
+           return(i->red_mult);
+ }
+-void set_XStandardColormap_red_mult(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_red_mult (XStandardColormap *i, int j)
+ {
+           i->red_mult = j;
+ }
+-int  XStandardColormap_red_max(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_red_max (XStandardColormap *i)
+ {
+           return(i->red_max);
+ }
+-void set_XStandardColormap_red_max(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_red_max (XStandardColormap *i, int j)
+ {
+           i->red_max = j;
+ }
+-int  XStandardColormap_colormap(i)
+-XStandardColormap* i;
++int 
++XStandardColormap_colormap (XStandardColormap *i)
+ {
+           return(i->colormap);
+ }
+-void set_XStandardColormap_colormap(i, j)
+-XStandardColormap* i;
+-int j;
++void 
++set_XStandardColormap_colormap (XStandardColormap *i, int j)
+ {
+           i->colormap = j;
+ }
+--- gcl27-2.7.1.orig/xgcl-2/XStruct-4.c
++++ gcl27-2.7.1/xgcl-2/XStruct-4.c
+@@ -30,58 +30,54 @@
+ /********* XExtCodes functions *****/
+-long  make_XExtCodes (){
++long make_XExtCodes (void)
++{
+           return ((long) calloc(1, sizeof(XExtCodes)));
+ }
+-int  XExtCodes_first_error(i)
+-XExtCodes* i;
++int XExtCodes_first_error (XExtCodes* i)
+ {
+           return(i->first_error);
+ }
+-void set_XExtCodes_first_error(i, j)
+-XExtCodes* i;
+-int j;
++void 
++set_XExtCodes_first_error (XExtCodes *i, int j)
+ {
+           i->first_error = j;
+ }
+-int  XExtCodes_first_event(i)
+-XExtCodes* i;
++int 
++XExtCodes_first_event (XExtCodes *i)
+ {
+           return(i->first_event);
+ }
+-void set_XExtCodes_first_event(i, j)
+-XExtCodes* i;
+-int j;
++void 
++set_XExtCodes_first_event (XExtCodes *i, int j)
+ {
+           i->first_event = j;
+ }
+-int  XExtCodes_major_opcode(i)
+-XExtCodes* i;
++int 
++XExtCodes_major_opcode (XExtCodes *i)
+ {
+           return(i->major_opcode);
+ }
+-void set_XExtCodes_major_opcode(i, j)
+-XExtCodes* i;
+-int j;
++void 
++set_XExtCodes_major_opcode (XExtCodes *i, int j)
+ {
+           i->major_opcode = j;
+ }
+-int  XExtCodes_extension(i)
+-XExtCodes* i;
++int 
++XExtCodes_extension (XExtCodes *i)
+ {
+           return(i->extension);
+ }
+-void set_XExtCodes_extension(i, j)
+-XExtCodes* i;
+-int j;
++void 
++set_XExtCodes_extension (XExtCodes *i, int j)
+ {
+           i->extension = j;
+ }
+@@ -89,45 +85,43 @@ int j;
+ /********* XPixmapFormatValues functions *****/
+-long  make_XPixmapFormatValues (){
++long 
++make_XPixmapFormatValues (void){
+           return ((long) calloc(1, sizeof(XPixmapFormatValues)));
+ }
+-int  XPixmapFormatValues_scanline_pad(i)
+-XPixmapFormatValues* i;
++int 
++XPixmapFormatValues_scanline_pad (XPixmapFormatValues *i)
+ {
+           return(i->scanline_pad);
+ }
+-void set_XPixmapFormatValues_scanline_pad(i, j)
+-XPixmapFormatValues* i;
+-int j;
++void 
++set_XPixmapFormatValues_scanline_pad (XPixmapFormatValues *i, int j)
+ {
+           i->scanline_pad = j;
+ }
+-int  XPixmapFormatValues_bits_per_pixel(i)
+-XPixmapFormatValues* i;
++int 
++XPixmapFormatValues_bits_per_pixel (XPixmapFormatValues *i)
+ {
+           return(i->bits_per_pixel);
+ }
+-void set_XPixmapFormatValues_bits_per_pixel(i, j)
+-XPixmapFormatValues* i;
+-int j;
++void 
++set_XPixmapFormatValues_bits_per_pixel (XPixmapFormatValues *i, int j)
+ {
+           i->bits_per_pixel = j;
+ }
+-int  XPixmapFormatValues_depth(i)
+-XPixmapFormatValues* i;
++int 
++XPixmapFormatValues_depth (XPixmapFormatValues *i)
+ {
+           return(i->depth);
+ }
+-void set_XPixmapFormatValues_depth(i, j)
+-XPixmapFormatValues* i;
+-int j;
++void 
++set_XPixmapFormatValues_depth (XPixmapFormatValues *i, int j)
+ {
+           i->depth = j;
+ }
+@@ -135,305 +129,283 @@ int j;
+ /********* XGCValues functions *****/
+-long  make_XGCValues (){
++long 
++make_XGCValues (void){
+           return ((long) calloc(1, sizeof(XGCValues)));
+ }
+-char XGCValues_dashes(i)
+-XGCValues* i;
++char 
++XGCValues_dashes (XGCValues *i)
+ {
+           return(i->dashes);
+ }
+-void set_XGCValues_dashes(i, j)
+-XGCValues* i;
+-char j;
++void 
++set_XGCValues_dashes (XGCValues *i, int j)
+ {
+           i->dashes = j;
+ }
+-int  XGCValues_dash_offset(i)
+-XGCValues* i;
++int 
++XGCValues_dash_offset (XGCValues *i)
+ {
+           return(i->dash_offset);
+ }
+-void set_XGCValues_dash_offset(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_dash_offset (XGCValues *i, int j)
+ {
+           i->dash_offset = j;
+ }
+-int  XGCValues_clip_mask(i)
+-XGCValues* i;
++int 
++XGCValues_clip_mask (XGCValues *i)
+ {
+           return(i->clip_mask);
+ }
+-void set_XGCValues_clip_mask(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_clip_mask (XGCValues *i, int j)
+ {
+           i->clip_mask = j;
+ }
+-int  XGCValues_clip_y_origin(i)
+-XGCValues* i;
++int 
++XGCValues_clip_y_origin (XGCValues *i)
+ {
+           return(i->clip_y_origin);
+ }
+-void set_XGCValues_clip_y_origin(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_clip_y_origin (XGCValues *i, int j)
+ {
+           i->clip_y_origin = j;
+ }
+-int  XGCValues_clip_x_origin(i)
+-XGCValues* i;
++int 
++XGCValues_clip_x_origin (XGCValues *i)
+ {
+           return(i->clip_x_origin);
+ }
+-void set_XGCValues_clip_x_origin(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_clip_x_origin (XGCValues *i, int j)
+ {
+           i->clip_x_origin = j;
+ }
+-int  XGCValues_graphics_exposures(i)
+-XGCValues* i;
++int 
++XGCValues_graphics_exposures (XGCValues *i)
+ {
+           return(i->graphics_exposures);
+ }
+-void set_XGCValues_graphics_exposures(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_graphics_exposures (XGCValues *i, int j)
+ {
+           i->graphics_exposures = j;
+ }
+-int  XGCValues_subwindow_mode(i)
+-XGCValues* i;
++int 
++XGCValues_subwindow_mode (XGCValues *i)
+ {
+           return(i->subwindow_mode);
+ }
+-void set_XGCValues_subwindow_mode(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_subwindow_mode (XGCValues *i, int j)
+ {
+           i->subwindow_mode = j;
+ }
+-int  XGCValues_font(i)
+-XGCValues* i;
++int 
++XGCValues_font (XGCValues *i)
+ {
+           return(i->font);
+ }
+-void set_XGCValues_font(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_font (XGCValues *i, int j)
+ {
+           i->font = j;
+ }
+-int  XGCValues_ts_y_origin(i)
+-XGCValues* i;
++int 
++XGCValues_ts_y_origin (XGCValues *i)
+ {
+           return(i->ts_y_origin);
+ }
+-void set_XGCValues_ts_y_origin(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_ts_y_origin (XGCValues *i, int j)
+ {
+           i->ts_y_origin = j;
+ }
+-int  XGCValues_ts_x_origin(i)
+-XGCValues* i;
++int 
++XGCValues_ts_x_origin (XGCValues *i)
+ {
+           return(i->ts_x_origin);
+ }
+-void set_XGCValues_ts_x_origin(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_ts_x_origin (XGCValues *i, int j)
+ {
+           i->ts_x_origin = j;
+ }
+-int  XGCValues_stipple(i)
+-XGCValues* i;
++int 
++XGCValues_stipple (XGCValues *i)
+ {
+           return(i->stipple);
+ }
+-void set_XGCValues_stipple(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_stipple (XGCValues *i, int j)
+ {
+           i->stipple = j;
+ }
+-int  XGCValues_tile(i)
+-XGCValues* i;
++int 
++XGCValues_tile (XGCValues *i)
+ {
+           return(i->tile);
+ }
+-void set_XGCValues_tile(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_tile (XGCValues *i, int j)
+ {
+           i->tile = j;
+ }
+-int  XGCValues_arc_mode(i)
+-XGCValues* i;
++int 
++XGCValues_arc_mode (XGCValues *i)
+ {
+           return(i->arc_mode);
+ }
+-void set_XGCValues_arc_mode(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_arc_mode (XGCValues *i, int j)
+ {
+           i->arc_mode = j;
+ }
+-int  XGCValues_fill_rule(i)
+-XGCValues* i;
++int 
++XGCValues_fill_rule (XGCValues *i)
+ {
+           return(i->fill_rule);
+ }
+-void set_XGCValues_fill_rule(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_fill_rule (XGCValues *i, int j)
+ {
+           i->fill_rule = j;
+ }
+-int  XGCValues_fill_style(i)
+-XGCValues* i;
++int 
++XGCValues_fill_style (XGCValues *i)
+ {
+           return(i->fill_style);
+ }
+-void set_XGCValues_fill_style(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_fill_style (XGCValues *i, int j)
+ {
+           i->fill_style = j;
+ }
+-int  XGCValues_join_style(i)
+-XGCValues* i;
++int 
++XGCValues_join_style (XGCValues *i)
+ {
+           return(i->join_style);
+ }
+-void set_XGCValues_join_style(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_join_style (XGCValues *i, int j)
+ {
+           i->join_style = j;
+ }
+-int  XGCValues_cap_style(i)
+-XGCValues* i;
++int 
++XGCValues_cap_style (XGCValues *i)
+ {
+           return(i->cap_style);
+ }
+-void set_XGCValues_cap_style(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_cap_style (XGCValues *i, int j)
+ {
+           i->cap_style = j;
+ }
+-int  XGCValues_line_style(i)
+-XGCValues* i;
++int 
++XGCValues_line_style (XGCValues *i)
+ {
+           return(i->line_style);
+ }
+-void set_XGCValues_line_style(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_line_style (XGCValues *i, int j)
+ {
+           i->line_style = j;
+ }
+-int  XGCValues_line_width(i)
+-XGCValues* i;
++int 
++XGCValues_line_width (XGCValues *i)
+ {
+           return(i->line_width);
+ }
+-void set_XGCValues_line_width(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_line_width (XGCValues *i, int j)
+ {
+           i->line_width = j;
+ }
+-int  XGCValues_background(i)
+-XGCValues* i;
++int 
++XGCValues_background (XGCValues *i)
+ {
+           return(i->background);
+ }
+-void set_XGCValues_background(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_background (XGCValues *i, int j)
+ {
+           i->background = j;
+ }
+-int  XGCValues_foreground(i)
+-XGCValues* i;
++int 
++XGCValues_foreground (XGCValues *i)
+ {
+           return(i->foreground);
+ }
+-void set_XGCValues_foreground(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_foreground (XGCValues *i, int j)
+ {
+           i->foreground = j;
+ }
+-int  XGCValues_plane_mask(i)
+-XGCValues* i;
++int 
++XGCValues_plane_mask (XGCValues *i)
+ {
+           return(i->plane_mask);
+ }
+-void set_XGCValues_plane_mask(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_plane_mask (XGCValues *i, int j)
+ {
+           i->plane_mask = j;
+ }
+-int  XGCValues_function(i)
+-XGCValues* i;
++int 
++XGCValues_function (XGCValues *i)
+ {
+           return(i->function);
+ }
+-void set_XGCValues_function(i, j)
+-XGCValues* i;
+-int j;
++void 
++set_XGCValues_function (XGCValues *i, int j)
+ {
+           i->function = j;
+ }
+@@ -528,110 +500,103 @@ int j;
+ /********* Visual functions *****/
+-long  make_Visual (){
++long 
++make_Visual (void){
+           return ((long) calloc(1, sizeof(Visual)));
+ }
+-int  Visual_map_entries(i)
+-Visual* i;
++int 
++Visual_map_entries (Visual *i)
+ {
+           return(i->map_entries);
+ }
+-void set_Visual_map_entries(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_map_entries (Visual *i, int j)
+ {
+           i->map_entries = j;
+ }
+-int  Visual_bits_per_rgb(i)
+-Visual* i;
++int 
++Visual_bits_per_rgb (Visual *i)
+ {
+           return(i->bits_per_rgb);
+ }
+-void set_Visual_bits_per_rgb(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_bits_per_rgb (Visual *i, int j)
+ {
+           i->bits_per_rgb = j;
+ }
+-int   Visual_blue_mask(i)
+-Visual* i;
++int 
++Visual_blue_mask (Visual *i)
+ {
+           return(i->blue_mask);
+ }
+-void set_Visual_blue_mask(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_blue_mask (Visual *i, int j)
+ {
+           i->blue_mask = j;
+ }
+-int  Visual_green_mask(i)
+-Visual* i;
++int 
++Visual_green_mask (Visual *i)
+ {
+           return(i->green_mask);
+ }
+-void set_Visual_green_mask(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_green_mask (Visual *i, int j)
+ {
+           i->green_mask = j;
+ }
+-int  Visual_red_mask(i)
+-Visual* i;
++int 
++Visual_red_mask (Visual *i)
+ {
+           return(i->red_mask);
+ }
+-void set_Visual_red_mask(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_red_mask (Visual *i, int j)
+ {
+           i->red_mask = j;
+ }
+-int  Visual_class(i)
+-Visual* i;
++int 
++Visual_class (Visual *i)
+ {
+           return(i->class);
+ }
+-void set_Visual_class(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_class (Visual *i, int j)
+ {
+           i->class = j;
+ }
+-int  Visual_visualid(i)
+-Visual* i;
++int 
++Visual_visualid (Visual *i)
+ {
+           return(i->visualid);
+ }
+-void set_Visual_visualid(i, j)
+-Visual* i;
+-int j;
++void 
++set_Visual_visualid (Visual *i, int j)
+ {
+           i->visualid = j;
+ }
+-long  Visual_ext_data(i)
+-Visual* i;
++long 
++Visual_ext_data (Visual *i)
+ {
+           return((long) i->ext_data);
+ }
+-void set_Visual_ext_data(i, j)
+-Visual* i;
+-long j;
++void 
++set_Visual_ext_data (Visual *i, long j)
+ {
+           i->ext_data = (XExtData *) j;
+ }
+@@ -639,45 +604,43 @@ long j;
+ /********* Depth functions *****/
+-long  make_Depth (){
++long 
++make_Depth (void){
+           return ((long) calloc(1, sizeof(Depth)));
+ }
+-long  Depth_visuals(i)
+-Depth* i;
++long 
++Depth_visuals (Depth *i)
+ {
+           return((long) i->visuals);
+ }
+-void set_Depth_visuals(i, j)
+-Depth* i;
+-long j;
++void 
++set_Depth_visuals (Depth *i, long j)
+ {
+           i->visuals = (Visual *) j;
+ }
+-int  Depth_nvisuals(i)
+-Depth* i;
++int 
++Depth_nvisuals (Depth *i)
+ {
+           return(i->nvisuals);
+ }
+-void set_Depth_nvisuals(i, j)
+-Depth* i;
+-int j;
++void 
++set_Depth_nvisuals (Depth *i, int j)
+ {
+           i->nvisuals = j;
+ }
+-int  Depth_depth(i)
+-Depth* i;
++int 
++Depth_depth (Depth *i)
+ {
+           return(i->depth);
+ }
+-void set_Depth_depth(i, j)
+-Depth* i;
+-int j;
++void 
++set_Depth_depth (Depth *i, int j)
+ {
+           i->depth = j;
+ }
+@@ -685,266 +648,247 @@ int j;
+ /********* Screen functions *****/
+-long  make_Screen (){
++long 
++make_Screen (void){
+           return ((long) calloc(1, sizeof(Screen)));
+ }
+-int  Screen_root_input_mask(i)
+-Screen* i;
++int 
++Screen_root_input_mask (Screen *i)
+ {
+           return(i->root_input_mask);
+ }
+-void set_Screen_root_input_mask(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_root_input_mask (Screen *i, int j)
+ {
+           i->root_input_mask = j;
+ }
+-int  Screen_save_unders(i)
+-Screen* i;
++int 
++Screen_save_unders (Screen *i)
+ {
+           return(i->save_unders);
+ }
+-void set_Screen_save_unders(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_save_unders (Screen *i, int j)
+ {
+           i->save_unders = j;
+ }
+-int  Screen_backing_store(i)
+-Screen* i;
++int 
++Screen_backing_store (Screen *i)
+ {
+           return(i->backing_store);
+ }
+-void set_Screen_backing_store(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_backing_store (Screen *i, int j)
+ {
+           i->backing_store = j;
+ }
+-int  Screen_min_maps(i)
+-Screen* i;
++int 
++Screen_min_maps (Screen *i)
+ {
+           return(i->min_maps);
+ }
+-void set_Screen_min_maps(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_min_maps (Screen *i, int j)
+ {
+           i->min_maps = j;
+ }
+-int  Screen_max_maps(i)
+-Screen* i;
++int 
++Screen_max_maps (Screen *i)
+ {
+           return(i->max_maps);
+ }
+-void set_Screen_max_maps(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_max_maps (Screen *i, int j)
+ {
+           i->max_maps = j;
+ }
+-int  Screen_black_pixel(i)
+-Screen* i;
++int 
++Screen_black_pixel (Screen *i)
+ {
+           return(i->black_pixel);
+ }
+-void set_Screen_black_pixel(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_black_pixel (Screen *i, int j)
+ {
+           i->black_pixel = j;
+ }
+-int  Screen_white_pixel(i)
+-Screen* i;
++int 
++Screen_white_pixel (Screen *i)
+ {
+           return(i->white_pixel);
+ }
+-void set_Screen_white_pixel(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_white_pixel (Screen *i, int j)
+ {
+           i->white_pixel = j;
+ }
+-int  Screen_cmap(i)
+-Screen* i;
++int 
++Screen_cmap (Screen *i)
+ {
+           return(i->cmap);
+ }
+-void set_Screen_cmap(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_cmap (Screen *i, int j)
+ {
+           i->cmap = j;
+ }
+-long  Screen_default_gc(i)
+-Screen* i;
++long 
++Screen_default_gc (Screen *i)
+ {
+           return((long) i->default_gc);
+ }
+-void set_Screen_default_gc(i, j)
+-Screen* i;
+-long j;
++void 
++set_Screen_default_gc (Screen *i, long j)
+ {
+           i->default_gc = (GC) j;
+ }
+-long  Screen_root_visual(i)
+-Screen* i;
++long 
++Screen_root_visual (Screen *i)
+ {
+           return((long) i->root_visual);
+ }
+-void set_Screen_root_visual(i, j)
+-Screen* i;
+-long j;
++void 
++set_Screen_root_visual (Screen *i, long j)
+ {
+           i->root_visual = (Visual *) j;
+ }
+-int  Screen_root_depth(i)
+-Screen* i;
++int 
++Screen_root_depth (Screen *i)
+ {
+           return(i->root_depth);
+ }
+-void set_Screen_root_depth(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_root_depth (Screen *i, int j)
+ {
+           i->root_depth = j;
+ }
+-long  Screen_depths(i)
+-Screen* i;
++long 
++Screen_depths (Screen *i)
+ {
+           return((long) i->depths);
+ }
+-void set_Screen_depths(i, j)
+-Screen* i;
+-long j;
++void 
++set_Screen_depths (Screen *i, long j)
+ {
+           i->depths = (Depth *) j;
+ }
+-int  Screen_ndepths(i)
+-Screen* i;
++int 
++Screen_ndepths (Screen *i)
+ {
+           return(i->ndepths);
+ }
+-void set_Screen_ndepths(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_ndepths (Screen *i, int j)
+ {
+           i->ndepths = j;
+ }
+-int  Screen_mheight(i)
+-Screen* i;
++int 
++Screen_mheight (Screen *i)
+ {
+           return(i->mheight);
+ }
+-void set_Screen_mheight(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_mheight (Screen *i, int j)
+ {
+           i->mheight = j;
+ }
+-int  Screen_mwidth(i)
+-Screen* i;
++int 
++Screen_mwidth (Screen *i)
+ {
+           return(i->mwidth);
+ }
+-void set_Screen_mwidth(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_mwidth (Screen *i, int j)
+ {
+           i->mwidth = j;
+ }
+-int  Screen_height(i)
+-Screen* i;
++int 
++Screen_height (Screen *i)
+ {
+           return(i->height);
+ }
+-void set_Screen_height(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_height (Screen *i, int j)
+ {
+           i->height = j;
+ }
+-int  Screen_width(i)
+-Screen* i;
++int 
++Screen_width (Screen *i)
+ {
+           return(i->width);
+ }
+-void set_Screen_width(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_width (Screen *i, int j)
+ {
+           i->width = j;
+ }
+-int  Screen_root(i)
+-Screen* i;
++int 
++Screen_root (Screen *i)
+ {
+           return(i->root);
+ }
+-void set_Screen_root(i, j)
+-Screen* i;
+-int j;
++void 
++set_Screen_root (Screen *i, int j)
+ {
+           i->root = j;
+ }
+-long Screen_display(i)
+-Screen* i;
++long 
++Screen_display (Screen *i)
+ {
+           return((long) i->display);
+ }
+-void set_Screen_display(i, j)
+-Screen* i;
+-long j;
++void 
++set_Screen_display (Screen *i, long j)
+ {
+            i->display = (struct _XDisplay *) j;
+ }
+-long  Screen_ext_data(i)
+-Screen* i;
++long 
++Screen_ext_data (Screen *i)
+ {
+           return((long) i->ext_data);
+ }
+-void set_Screen_ext_data(i, j)
+-Screen* i;
+-long j;
++void 
++set_Screen_ext_data (Screen *i, long j)
+ {
+           i->ext_data = (XExtData *) j;
+ }
+@@ -952,58 +896,55 @@ long j;
+ /********* ScreenFormat functions *****/
+-long  make_ScreenFormat (){
++long 
++make_ScreenFormat (void){
+           return ((long) calloc(1, sizeof(ScreenFormat)));
+ }
+-int  ScreenFormat_scanline_pad(i)
+-ScreenFormat* i;
++int 
++ScreenFormat_scanline_pad (ScreenFormat *i)
+ {
+           return(i->scanline_pad);
+ }
+-void set_ScreenFormat_scanline_pad(i, j)
+-ScreenFormat* i;
+-int j;
++void 
++set_ScreenFormat_scanline_pad (ScreenFormat *i, int j)
+ {
+           i->scanline_pad = j;
+ }
+-int  ScreenFormat_bits_per_pixel(i)
+-ScreenFormat* i;
++int 
++ScreenFormat_bits_per_pixel (ScreenFormat *i)
+ {
+           return(i->bits_per_pixel);
+ }
+-void set_ScreenFormat_bits_per_pixel(i, j)
+-ScreenFormat* i;
+-int j;
++void 
++set_ScreenFormat_bits_per_pixel (ScreenFormat *i, int j)
+ {
+           i->bits_per_pixel = j;
+ }
+-int  ScreenFormat_depth(i)
+-ScreenFormat* i;
++int 
++ScreenFormat_depth (ScreenFormat *i)
+ {
+           return(i->depth);
+ }
+-void set_ScreenFormat_depth(i, j)
+-ScreenFormat* i;
+-int j;
++void 
++set_ScreenFormat_depth (ScreenFormat *i, int j)
+ {
+           i->depth = j;
+ }
+-long  ScreenFormat_ext_data(i)
+-ScreenFormat* i;
++long 
++ScreenFormat_ext_data (ScreenFormat *i)
+ {
+           return((long) i->ext_data);
+ }
+-void set_ScreenFormat_ext_data(i, j)
+-ScreenFormat* i;
+-long j;
++void 
++set_ScreenFormat_ext_data (ScreenFormat *i, long j)
+ {
+           i->ext_data = (XExtData *) j;
+ }
+@@ -1011,201 +952,187 @@ long j;
+ /********* XSetWindowAttributes functions *****/
+-long  make_XSetWindowAttributes (){
++long 
++make_XSetWindowAttributes (void){
+           return ((long) calloc(1, sizeof(XSetWindowAttributes)));
+ }
+-int  XSetWindowAttributes_cursor(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_cursor (XSetWindowAttributes *i)
+ {
+           return(i->cursor);
+ }
+-void set_XSetWindowAttributes_cursor(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_cursor (XSetWindowAttributes *i, int j)
+ {
+           i->cursor = j;
+ }
+-int  XSetWindowAttributes_colormap(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_colormap (XSetWindowAttributes *i)
+ {
+           return(i->colormap);
+ }
+-void set_XSetWindowAttributes_colormap(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_colormap (XSetWindowAttributes *i, int j)
+ {
+           i->colormap = j;
+ }
+-int  XSetWindowAttributes_override_redirect(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_override_redirect (XSetWindowAttributes *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XSetWindowAttributes_override_redirect(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_override_redirect (XSetWindowAttributes *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XSetWindowAttributes_do_not_propagate_mask(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_do_not_propagate_mask (XSetWindowAttributes *i)
+ {
+           return(i->do_not_propagate_mask);
+ }
+-void set_XSetWindowAttributes_do_not_propagate_mask(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_do_not_propagate_mask (XSetWindowAttributes *i, int j)
+ {
+           i->do_not_propagate_mask = j;
+ }
+-int  XSetWindowAttributes_event_mask(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_event_mask (XSetWindowAttributes *i)
+ {
+           return(i->event_mask);
+ }
+-void set_XSetWindowAttributes_event_mask(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_event_mask (XSetWindowAttributes *i, int j)
+ {
+           i->event_mask = j;
+ }
+-int  XSetWindowAttributes_save_under(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_save_under (XSetWindowAttributes *i)
+ {
+           return(i->save_under);
+ }
+-void set_XSetWindowAttributes_save_under(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_save_under (XSetWindowAttributes *i, int j)
+ {
+           i->save_under = j;
+ }
+-int  XSetWindowAttributes_backing_pixel(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_backing_pixel (XSetWindowAttributes *i)
+ {
+           return(i->backing_pixel);
+ }
+-void set_XSetWindowAttributes_backing_pixel(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_backing_pixel (XSetWindowAttributes *i, int j)
+ {
+           i->backing_pixel = j;
+ }
+-int  XSetWindowAttributes_backing_planes(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_backing_planes (XSetWindowAttributes *i)
+ {
+           return(i->backing_planes);
+ }
+-void set_XSetWindowAttributes_backing_planes(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_backing_planes (XSetWindowAttributes *i, int j)
+ {
+           i->backing_planes = j;
+ }
+-int  XSetWindowAttributes_backing_store(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_backing_store (XSetWindowAttributes *i)
+ {
+           return(i->backing_store);
+ }
+-void set_XSetWindowAttributes_backing_store(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_backing_store (XSetWindowAttributes *i, int j)
+ {
+           i->backing_store = j;
+ }
+-int  XSetWindowAttributes_win_gravity(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_win_gravity (XSetWindowAttributes *i)
+ {
+           return(i->win_gravity);
+ }
+-void set_XSetWindowAttributes_win_gravity(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_win_gravity (XSetWindowAttributes *i, int j)
+ {
+           i->win_gravity = j;
+ }
+-int  XSetWindowAttributes_bit_gravity(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_bit_gravity (XSetWindowAttributes *i)
+ {
+           return(i->bit_gravity);
+ }
+-void set_XSetWindowAttributes_bit_gravity(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_bit_gravity (XSetWindowAttributes *i, int j)
+ {
+           i->bit_gravity = j;
+ }
+-int  XSetWindowAttributes_border_pixel(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_border_pixel (XSetWindowAttributes *i)
+ {
+           return(i->border_pixel);
+ }
+-void set_XSetWindowAttributes_border_pixel(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_border_pixel (XSetWindowAttributes *i, int j)
+ {
+           i->border_pixel = j;
+ }
+-int  XSetWindowAttributes_border_pixmap(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_border_pixmap (XSetWindowAttributes *i)
+ {
+           return(i->border_pixmap);
+ }
+-void set_XSetWindowAttributes_border_pixmap(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_border_pixmap (XSetWindowAttributes *i, int j)
+ {
+           i->border_pixmap = j;
+ }
+-int  XSetWindowAttributes_background_pixel(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_background_pixel (XSetWindowAttributes *i)
+ {
+           return(i->background_pixel);
+ }
+-void set_XSetWindowAttributes_background_pixel(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_background_pixel (XSetWindowAttributes *i, int j)
+ {
+           i->background_pixel = j;
+ }
+-int  XSetWindowAttributes_background_pixmap(i)
+-XSetWindowAttributes* i;
++int 
++XSetWindowAttributes_background_pixmap (XSetWindowAttributes *i)
+ {
+           return(i->background_pixmap);
+ }
+-void set_XSetWindowAttributes_background_pixmap(i, j)
+-XSetWindowAttributes* i;
+-int j;
++void 
++set_XSetWindowAttributes_background_pixmap (XSetWindowAttributes *i, int j)
+ {
+           i->background_pixmap = j;
+ }
+@@ -1213,305 +1140,283 @@ int j;
+ /********* XWindowAttributes functions *****/
+-long  make_XWindowAttributes (){
++long 
++make_XWindowAttributes (void){
+           return ((long) calloc(1, sizeof(XWindowAttributes)));
+ }
+-long  XWindowAttributes_screen(i)
+-XWindowAttributes* i;
++long 
++XWindowAttributes_screen (XWindowAttributes *i)
+ {
+           return((long) i->screen);
+ }
+-void set_XWindowAttributes_screen(i, j)
+-XWindowAttributes* i;
+-long j;
++void 
++set_XWindowAttributes_screen (XWindowAttributes *i, long j)
+ {
+           i->screen = (Screen *) j;
+ }
+-int  XWindowAttributes_override_redirect(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_override_redirect (XWindowAttributes *i)
+ {
+           return(i->override_redirect);
+ }
+-void set_XWindowAttributes_override_redirect(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_override_redirect (XWindowAttributes *i, int j)
+ {
+           i->override_redirect = j;
+ }
+-int  XWindowAttributes_do_not_propagate_mask(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_do_not_propagate_mask (XWindowAttributes *i)
+ {
+           return(i->do_not_propagate_mask);
+ }
+-void set_XWindowAttributes_do_not_propagate_mask(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_do_not_propagate_mask (XWindowAttributes *i, int j)
+ {
+           i->do_not_propagate_mask = j;
+ }
+-int  XWindowAttributes_your_event_mask(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_your_event_mask (XWindowAttributes *i)
+ {
+           return(i->your_event_mask);
+ }
+-void set_XWindowAttributes_your_event_mask(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_your_event_mask (XWindowAttributes *i, int j)
+ {
+           i->your_event_mask = j;
+ }
+-int  XWindowAttributes_all_event_masks(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_all_event_masks (XWindowAttributes *i)
+ {
+           return(i->all_event_masks);
+ }
+-void set_XWindowAttributes_all_event_masks(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_all_event_masks (XWindowAttributes *i, int j)
+ {
+           i->all_event_masks = j;
+ }
+-int  XWindowAttributes_map_state(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_map_state (XWindowAttributes *i)
+ {
+           return(i->map_state);
+ }
+-void set_XWindowAttributes_map_state(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_map_state (XWindowAttributes *i, int j)
+ {
+           i->map_state = j;
+ }
+-int  XWindowAttributes_map_installed(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_map_installed (XWindowAttributes *i)
+ {
+           return(i->map_installed);
+ }
+-void set_XWindowAttributes_map_installed(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_map_installed (XWindowAttributes *i, int j)
+ {
+           i->map_installed = j;
+ }
+-int  XWindowAttributes_colormap(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_colormap (XWindowAttributes *i)
+ {
+           return(i->colormap);
+ }
+-void set_XWindowAttributes_colormap(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_colormap (XWindowAttributes *i, int j)
+ {
+           i->colormap = j;
+ }
+-int  XWindowAttributes_save_under(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_save_under (XWindowAttributes *i)
+ {
+           return(i->save_under);
+ }
+-void set_XWindowAttributes_save_under(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_save_under (XWindowAttributes *i, int j)
+ {
+           i->save_under = j;
+ }
+-int  XWindowAttributes_backing_pixel(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_backing_pixel (XWindowAttributes *i)
+ {
+           return(i->backing_pixel);
+ }
+-void set_XWindowAttributes_backing_pixel(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_backing_pixel (XWindowAttributes *i, int j)
+ {
+           i->backing_pixel = j;
+ }
+-int  XWindowAttributes_backing_planes(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_backing_planes (XWindowAttributes *i)
+ {
+           return(i->backing_planes);
+ }
+-void set_XWindowAttributes_backing_planes(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_backing_planes (XWindowAttributes *i, int j)
+ {
+           i->backing_planes = j;
+ }
+-int  XWindowAttributes_backing_store(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_backing_store (XWindowAttributes *i)
+ {
+           return(i->backing_store);
+ }
+-void set_XWindowAttributes_backing_store(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_backing_store (XWindowAttributes *i, int j)
+ {
+           i->backing_store = j;
+ }
+-int  XWindowAttributes_win_gravity(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_win_gravity (XWindowAttributes *i)
+ {
+           return(i->win_gravity);
+ }
+-void set_XWindowAttributes_win_gravity(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_win_gravity (XWindowAttributes *i, int j)
+ {
+           i->win_gravity = j;
+ }
+-int  XWindowAttributes_bit_gravity(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_bit_gravity (XWindowAttributes *i)
+ {
+           return(i->bit_gravity);
+ }
+-void set_XWindowAttributes_bit_gravity(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_bit_gravity (XWindowAttributes *i, int j)
+ {
+           i->bit_gravity = j;
+ }
+-int  XWindowAttributes_class(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_class (XWindowAttributes *i)
+ {
+           return(i->class);
+ }
+-void set_XWindowAttributes_class(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_class (XWindowAttributes *i, int j)
+ {
+           i->class = j;
+ }
+-int  XWindowAttributes_root(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_root (XWindowAttributes *i)
+ {
+           return(i->root);
+ }
+-void set_XWindowAttributes_root(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_root (XWindowAttributes *i, int j)
+ {
+           i->root = j;
+ }
+-long  XWindowAttributes_visual(i)
+-XWindowAttributes* i;
++long 
++XWindowAttributes_visual (XWindowAttributes *i)
+ {
+           return((long) i->visual);
+ }
+-void set_XWindowAttributes_visual(i, j)
+-XWindowAttributes* i;
+-long j;
++void 
++set_XWindowAttributes_visual (XWindowAttributes *i, long j)
+ {
+           i->visual = (Visual *) j;
+ }
+-int  XWindowAttributes_depth(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_depth (XWindowAttributes *i)
+ {
+           return(i->depth);
+ }
+-void set_XWindowAttributes_depth(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_depth (XWindowAttributes *i, int j)
+ {
+           i->depth = j;
+ }
+-int  XWindowAttributes_border_width(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_border_width (XWindowAttributes *i)
+ {
+           return(i->border_width);
+ }
+-void set_XWindowAttributes_border_width(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_border_width (XWindowAttributes *i, int j)
+ {
+           i->border_width = j;
+ }
+-int  XWindowAttributes_height(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_height (XWindowAttributes *i)
+ {
+           return(i->height);
+ }
+-void set_XWindowAttributes_height(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_height (XWindowAttributes *i, int j)
+ {
+           i->height = j;
+ }
+-int  XWindowAttributes_width(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_width (XWindowAttributes *i)
+ {
+           return(i->width);
+ }
+-void set_XWindowAttributes_width(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_width (XWindowAttributes *i, int j)
+ {
+           i->width = j;
+ }
+-int  XWindowAttributes_y(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_y (XWindowAttributes *i)
+ {
+           return(i->y);
+ }
+-void set_XWindowAttributes_y(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_y (XWindowAttributes *i, int j)
+ {
+           i->y = j;
+ }
+-int  XWindowAttributes_x(i)
+-XWindowAttributes* i;
++int 
++XWindowAttributes_x (XWindowAttributes *i)
+ {
+           return(i->x);
+ }
+-void set_XWindowAttributes_x(i, j)
+-XWindowAttributes* i;
+-int j;
++void 
++set_XWindowAttributes_x (XWindowAttributes *i, int j)
+ {
+           i->x = j;
+ }
+@@ -1519,45 +1424,43 @@ int j;
+ /********* XHostAddress functions *****/
+-long  make_XHostAddress (){
++long 
++make_XHostAddress (void){
+           return ((long) calloc(1, sizeof(XHostAddress)));
+ }
+-long  XHostAddress_address(i)
+-XHostAddress* i;
++long 
++XHostAddress_address (XHostAddress *i)
+ {
+           return((long) i->address);
+ }
+-void set_XHostAddress_address(i, j)
+-XHostAddress* i;
+-long j;
++void 
++set_XHostAddress_address (XHostAddress *i, long j)
+ {
+           i->address = (char *) j;
+ }
+-int  XHostAddress_length(i)
+-XHostAddress* i;
++int 
++XHostAddress_length (XHostAddress *i)
+ {
+           return(i->length);
+ }
+-void set_XHostAddress_length(i, j)
+-XHostAddress* i;
+-int j;
++void 
++set_XHostAddress_length (XHostAddress *i, int j)
+ {
+           i->length = j;
+ }
+-int  XHostAddress_family(i)
+-XHostAddress* i;
++int 
++XHostAddress_family (XHostAddress *i)
+ {
+           return(i->family);
+ }
+-void set_XHostAddress_family(i, j)
+-XHostAddress* i;
+-int j;
++void 
++set_XHostAddress_family (XHostAddress *i, int j)
+ {
+           i->family = j;
+ }
+@@ -1565,214 +1468,199 @@ int j;
+ /********* XImage functions *****/
+-long  make_XImage (){
++long 
++make_XImage (void){
+           return ((long) calloc(1, sizeof(XImage)));
+ }
+-long  XImage_obdata(i)
+-XImage* i;
++long 
++XImage_obdata (XImage *i)
+ {
+           return((long) i->obdata);
+ }
+-void set_XImage_obdata(i, j)
+-XImage* i;
+-long j;
++void 
++set_XImage_obdata (XImage *i, long j)
+ {
+           i->obdata = (XPointer) j;
+ }
+-int  XImage_blue_mask(i)
+-XImage* i;
++int 
++XImage_blue_mask (XImage *i)
+ {
+           return(i->blue_mask);
+ }
+-void set_XImage_blue_mask(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_blue_mask (XImage *i, int j)
+ {
+           i->blue_mask = j;
+ }
+-int  XImage_green_mask(i)
+-XImage* i;
++int 
++XImage_green_mask (XImage *i)
+ {
+           return(i->green_mask);
+ }
+-void set_XImage_green_mask(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_green_mask (XImage *i, int j)
+ {
+           i->green_mask = j;
+ }
+-int  XImage_red_mask(i)
+-XImage* i;
++int 
++XImage_red_mask (XImage *i)
+ {
+           return(i->red_mask);
+ }
+-void set_XImage_red_mask(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_red_mask (XImage *i, int j)
+ {
+           i->red_mask = j;
+ }
+-int  XImage_bits_per_pixel(i)
+-XImage* i;
++int 
++XImage_bits_per_pixel (XImage *i)
+ {
+           return(i->bits_per_pixel);
+ }
+-void set_XImage_bits_per_pixel(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_bits_per_pixel (XImage *i, int j)
+ {
+           i->bits_per_pixel = j;
+ }
+-int  XImage_bytes_per_line(i)
+-XImage* i;
++int 
++XImage_bytes_per_line (XImage *i)
+ {
+           return(i->bytes_per_line);
+ }
+-void set_XImage_bytes_per_line(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_bytes_per_line (XImage *i, int j)
+ {
+           i->bytes_per_line = j;
+ }
+-int  XImage_depth(i)
+-XImage* i;
++int 
++XImage_depth (XImage *i)
+ {
+           return(i->depth);
+ }
+-void set_XImage_depth(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_depth (XImage *i, int j)
+ {
+           i->depth = j;
+ }
+-int  XImage_bitmap_pad(i)
+-XImage* i;
++int 
++XImage_bitmap_pad (XImage *i)
+ {
+           return(i->bitmap_pad);
+ }
+-void set_XImage_bitmap_pad(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_bitmap_pad (XImage *i, int j)
+ {
+           i->bitmap_pad = j;
+ }
+-int  XImage_bitmap_bit_order(i)
+-XImage* i;
++int 
++XImage_bitmap_bit_order (XImage *i)
+ {
+           return(i->bitmap_bit_order);
+ }
+-void set_XImage_bitmap_bit_order(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_bitmap_bit_order (XImage *i, int j)
+ {
+           i->bitmap_bit_order = j;
+ }
+-int  XImage_bitmap_unit(i)
+-XImage* i;
++int 
++XImage_bitmap_unit (XImage *i)
+ {
+           return(i->bitmap_unit);
+ }
+-void set_XImage_bitmap_unit(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_bitmap_unit (XImage *i, int j)
+ {
+           i->bitmap_unit = j;
+ }
+-int  XImage_byte_order(i)
+-XImage* i;
++int 
++XImage_byte_order (XImage *i)
+ {
+           return(i->byte_order);
+ }
+-void set_XImage_byte_order(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_byte_order (XImage *i, int j)
+ {
+           i->byte_order = j;
+ }
+-long  XImage_data(i)
+-XImage* i;
++long 
++XImage_data (XImage *i)
+ {
+           return((long) i->data);
+ }
+-void set_XImage_data(i, j)
+-XImage* i;
+-long j;
++void 
++set_XImage_data (XImage *i, long j)
+ {
+           i->data = (char *) j;
+ }
+-int  XImage_format(i)
+-XImage* i;
++int 
++XImage_format (XImage *i)
+ {
+           return(i->format);
+ }
+-void set_XImage_format(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_format (XImage *i, int j)
+ {
+           i->format = j;
+ }
+-int  XImage_xoffset(i)
+-XImage* i;
++int 
++XImage_xoffset (XImage *i)
+ {
+           return(i->xoffset);
+ }
+-void set_XImage_xoffset(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_xoffset (XImage *i, int j)
+ {
+           i->xoffset = j;
+ }
+-int  XImage_height(i)
+-XImage* i;
++int 
++XImage_height (XImage *i)
+ {
+           return(i->height);
+ }
+-void set_XImage_height(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_height (XImage *i, int j)
+ {
+           i->height = j;
+ }
+-int  XImage_width(i)
+-XImage* i;
++int 
++XImage_width (XImage *i)
+ {
+           return(i->width);
+ }
+-void set_XImage_width(i, j)
+-XImage* i;
+-int j;
++void 
++set_XImage_width (XImage *i, int j)
+ {
+           i->width = j;
+ }
+@@ -1780,97 +1668,91 @@ int j;
+ /********* XWindowChanges functions *****/
+-long  make_XWindowChanges (){
++long 
++make_XWindowChanges (void){
+           return ((long) calloc(1, sizeof(XWindowChanges)));
+ }
+-int  XWindowChanges_stack_mode(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_stack_mode (XWindowChanges *i)
+ {
+           return(i->stack_mode);
+ }
+-void set_XWindowChanges_stack_mode(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_stack_mode (XWindowChanges *i, int j)
+ {
+           i->stack_mode = j;
+ }
+-int  XWindowChanges_sibling(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_sibling (XWindowChanges *i)
+ {
+           return(i->sibling);
+ }
+-void set_XWindowChanges_sibling(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_sibling (XWindowChanges *i, int j)
+ {
+           i->sibling = j;
+ }
+-int  XWindowChanges_border_width(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_border_width (XWindowChanges *i)
+ {
+           return(i->border_width);
+ }
+-void set_XWindowChanges_border_width(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_border_width (XWindowChanges *i, int j)
+ {
+           i->border_width = j;
+ }
+-int  XWindowChanges_height(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_height (XWindowChanges *i)
+ {
+           return(i->height);
+ }
+-void set_XWindowChanges_height(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_height (XWindowChanges *i, int j)
+ {
+           i->height = j;
+ }
+-int  XWindowChanges_width(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_width (XWindowChanges *i)
+ {
+           return(i->width);
+ }
+-void set_XWindowChanges_width(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_width (XWindowChanges *i, int j)
+ {
+           i->width = j;
+ }
+-int  XWindowChanges_y(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_y (XWindowChanges *i)
+ {
+           return(i->y);
+ }
+-void set_XWindowChanges_y(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_y (XWindowChanges *i, int j)
+ {
+           i->y = j;
+ }
+-int  XWindowChanges_x(i)
+-XWindowChanges* i;
++int 
++XWindowChanges_x (XWindowChanges *i)
+ {
+           return(i->x);
+ }
+-void set_XWindowChanges_x(i, j)
+-XWindowChanges* i;
+-int j;
++void 
++set_XWindowChanges_x (XWindowChanges *i, int j)
+ {
+           i->x = j;
+ }
+@@ -1878,84 +1760,79 @@ int j;
+ /********* XColor functions *****/
+-long  make_XColor (){
++long 
++make_XColor (void){
+           return ((long) calloc(1, sizeof(XColor)));
+ }
+-char XColor_pad(i)
+-XColor* i;
++char 
++XColor_pad (XColor *i)
+ {
+           return(i->pad);
+ }
+-void set_XColor_pad(i, j)
+-XColor* i;
+-char j;
++void 
++set_XColor_pad (XColor *i, int j)
+ {
+           i->pad = j;
+ }
+-char XColor_flags(i)
+-XColor* i;
++char 
++XColor_flags (XColor *i)
+ {
+           return(i->flags);
+ }
+-void set_XColor_flags(i, j)
+-XColor* i;
+-char j;
++void 
++set_XColor_flags (XColor *i, int j)
+ {
+           i->flags = j;
+ }
+-int  XColor_blue(i)
+-XColor* i;
++int 
++XColor_blue (XColor *i)
+ {
+           return(i->blue);
+ }
+-void set_XColor_blue(i, j)
+-XColor* i;
+-int j;
++void 
++set_XColor_blue (XColor *i, int j)
+ {
+           i->blue = j;
+ }
+-int  XColor_green(i)
+-XColor* i;
++int 
++XColor_green (XColor *i)
+ {
+           return(i->green);
+ }
+-void set_XColor_green(i, j)
+-XColor* i;
+-int j;
++void 
++set_XColor_green (XColor *i, int j)
+ {
+           i->green = j;
+ }
+-int  XColor_red(i)
+-XColor* i;
++int 
++XColor_red (XColor *i)
+ {
+           return(i->red);
+ }
+-void set_XColor_red(i, j)
+-XColor* i;
+-int j;
++void 
++set_XColor_red (XColor *i, int j)
+ {
+           i->red = j;
+ }
+-int  XColor_pixel(i)
+-XColor* i;
++int 
++XColor_pixel (XColor *i)
+ {
+           return(i->pixel);
+ }
+-void set_XColor_pixel(i, j)
+-XColor* i;
+-int j;
++void 
++set_XColor_pixel (XColor *i, int j)
+ {
+           i->pixel = j;
+ }
+@@ -1963,58 +1840,55 @@ int j;
+ /********* XSegment functions *****/
+-long  make_XSegment (){
++long 
++make_XSegment (void){
+           return ((long) calloc(1, sizeof(XSegment)));
+ }
+-int  XSegment_y2(i)
+-XSegment* i;
++int 
++XSegment_y2 (XSegment *i)
+ {
+           return(i->y2);
+ }
+-void set_XSegment_y2(i, j)
+-XSegment* i;
+-int j;
++void 
++set_XSegment_y2 (XSegment *i, int j)
+ {
+           i->y2 = j;
+ }
+-int  XSegment_x2(i)
+-XSegment* i;
++int 
++XSegment_x2 (XSegment *i)
+ {
+           return(i->x2);
+ }
+-void set_XSegment_x2(i, j)
+-XSegment* i;
+-int j;
++void 
++set_XSegment_x2 (XSegment *i, int j)
+ {
+           i->x2 = j;
+ }
+-int  XSegment_y1(i)
+-XSegment* i;
++int 
++XSegment_y1 (XSegment *i)
+ {
+           return(i->y1);
+ }
+-void set_XSegment_y1(i, j)
+-XSegment* i;
+-int j;
++void 
++set_XSegment_y1 (XSegment *i, int j)
+ {
+           i->y1 = j;
+ }
+-int  XSegment_x1(i)
+-XSegment* i;
++int 
++XSegment_x1 (XSegment *i)
+ {
+           return(i->x1);
+ }
+-void set_XSegment_x1(i, j)
+-XSegment* i;
+-int j;
++void 
++set_XSegment_x1 (XSegment *i, int j)
+ {
+           i->x1 = j;
+ }
+@@ -2022,32 +1896,31 @@ int j;
+ /********* XPoint functions *****/
+-long  make_XPoint (){
++long 
++make_XPoint (void){
+           return ((long) calloc(1, sizeof(XPoint)));
+ }
+-int  XPoint_y(i)
+-XPoint* i;
++int 
++XPoint_y (XPoint *i)
+ {
+           return(i->y);
+ }
+-void set_XPoint_y(i, j)
+-XPoint* i;
+-int j;
++void 
++set_XPoint_y (XPoint *i, int j)
+ {
+           i->y = j;
+ }
+-int  XPoint_x(i)
+-XPoint* i;
++int 
++XPoint_x (XPoint *i)
+ {
+           return(i->x);
+ }
+-void set_XPoint_x(i, j)
+-XPoint* i;
+-int j;
++void 
++set_XPoint_x (XPoint *i, int j)
+ {
+           i->x = j;
+ }
+@@ -2055,58 +1928,55 @@ int j;
+ /********* XRectangle functions *****/
+-long  make_XRectangle (){
++long 
++make_XRectangle (void){
+           return ((long) calloc(1, sizeof(XRectangle)));
+ }
+-int  XRectangle_height(i)
+-XRectangle* i;
++int 
++XRectangle_height (XRectangle *i)
+ {
+           return(i->height);
+ }
+-void set_XRectangle_height(i, j)
+-XRectangle* i;
+-int j;
++void 
++set_XRectangle_height (XRectangle *i, int j)
+ {
+           i->height = j;
+ }
+-int  XRectangle_width(i)
+-XRectangle* i;
++int 
++XRectangle_width (XRectangle *i)
+ {
+           return(i->width);
+ }
+-void set_XRectangle_width(i, j)
+-XRectangle* i;
+-int j;
++void 
++set_XRectangle_width (XRectangle *i, int j)
+ {
+           i->width = j;
+ }
+-int  XRectangle_y(i)
+-XRectangle* i;
++int 
++XRectangle_y (XRectangle *i)
+ {
+           return(i->y);
+ }
+-void set_XRectangle_y(i, j)
+-XRectangle* i;
+-int j;
++void 
++set_XRectangle_y (XRectangle *i, int j)
+ {
+           i->y = j;
+ }
+-int  XRectangle_x(i)
+-XRectangle* i;
++int 
++XRectangle_x (XRectangle *i)
+ {
+           return(i->x);
+ }
+-void set_XRectangle_x(i, j)
+-XRectangle* i;
+-int j;
++void 
++set_XRectangle_x (XRectangle *i, int j)
+ {
+           i->x = j;
+ }
+@@ -2114,84 +1984,79 @@ int j;
+ /********* XArc functions *****/
+-long  make_XArc (){
++long 
++make_XArc (void){
+           return ((long) calloc(1, sizeof(XArc)));
+ }
+-int  XArc_angle2(i)
+-XArc* i;
++int 
++XArc_angle2 (XArc *i)
+ {
+           return(i->angle2);
+ }
+-void set_XArc_angle2(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_angle2 (XArc *i, int j)
+ {
+           i->angle2 = j;
+ }
+-int  XArc_angle1(i)
+-XArc* i;
++int 
++XArc_angle1 (XArc *i)
+ {
+           return(i->angle1);
+ }
+-void set_XArc_angle1(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_angle1 (XArc *i, int j)
+ {
+           i->angle1 = j;
+ }
+-int  XArc_height(i)
+-XArc* i;
++int 
++XArc_height (XArc *i)
+ {
+           return(i->height);
+ }
+-void set_XArc_height(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_height (XArc *i, int j)
+ {
+           i->height = j;
+ }
+-int  XArc_width(i)
+-XArc* i;
++int 
++XArc_width (XArc *i)
+ {
+           return(i->width);
+ }
+-void set_XArc_width(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_width (XArc *i, int j)
+ {
+           i->width = j;
+ }
+-int  XArc_y(i)
+-XArc* i;
++int 
++XArc_y (XArc *i)
+ {
+           return(i->y);
+ }
+-void set_XArc_y(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_y (XArc *i, int j)
+ {
+           i->y = j;
+ }
+-int  XArc_x(i)
+-XArc* i;
++int 
++XArc_x (XArc *i)
+ {
+           return(i->x);
+ }
+-void set_XArc_x(i, j)
+-XArc* i;
+-int j;
++void 
++set_XArc_x (XArc *i, int j)
+ {
+           i->x = j;
+ }
+@@ -2199,110 +2064,103 @@ int j;
+ /********* XKeyboardControl functions *****/
+-long  make_XKeyboardControl (){
++long 
++make_XKeyboardControl (void){
+           return ((long) calloc(1, sizeof(XKeyboardControl)));
+ }
+-int  XKeyboardControl_auto_repeat_mode(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_auto_repeat_mode (XKeyboardControl *i)
+ {
+           return(i->auto_repeat_mode);
+ }
+-void set_XKeyboardControl_auto_repeat_mode(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_auto_repeat_mode (XKeyboardControl *i, int j)
+ {
+           i->auto_repeat_mode = j;
+ }
+-int  XKeyboardControl_key(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_key (XKeyboardControl *i)
+ {
+           return(i->key);
+ }
+-void set_XKeyboardControl_key(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_key (XKeyboardControl *i, int j)
+ {
+           i->key = j;
+ }
+-int  XKeyboardControl_led_mode(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_led_mode (XKeyboardControl *i)
+ {
+           return(i->led_mode);
+ }
+-void set_XKeyboardControl_led_mode(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_led_mode (XKeyboardControl *i, int j)
+ {
+           i->led_mode = j;
+ }
+-int  XKeyboardControl_led(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_led (XKeyboardControl *i)
+ {
+           return(i->led);
+ }
+-void set_XKeyboardControl_led(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_led (XKeyboardControl *i, int j)
+ {
+           i->led = j;
+ }
+-int  XKeyboardControl_bell_duration(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_bell_duration (XKeyboardControl *i)
+ {
+           return(i->bell_duration);
+ }
+-void set_XKeyboardControl_bell_duration(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_bell_duration (XKeyboardControl *i, int j)
+ {
+           i->bell_duration = j;
+ }
+-int  XKeyboardControl_bell_pitch(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_bell_pitch (XKeyboardControl *i)
+ {
+           return(i->bell_pitch);
+ }
+-void set_XKeyboardControl_bell_pitch(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_bell_pitch (XKeyboardControl *i, int j)
+ {
+           i->bell_pitch = j;
+ }
+-int  XKeyboardControl_bell_percent(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_bell_percent (XKeyboardControl *i)
+ {
+           return(i->bell_percent);
+ }
+-void set_XKeyboardControl_bell_percent(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_bell_percent (XKeyboardControl *i, int j)
+ {
+           i->bell_percent = j;
+ }
+-int  XKeyboardControl_key_click_percent(i)
+-XKeyboardControl* i;
++int 
++XKeyboardControl_key_click_percent (XKeyboardControl *i)
+ {
+           return(i->key_click_percent);
+ }
+-void set_XKeyboardControl_key_click_percent(i, j)
+-XKeyboardControl* i;
+-int j;
++void 
++set_XKeyboardControl_key_click_percent (XKeyboardControl *i, int j)
+ {
+           i->key_click_percent = j;
+ }
+@@ -2310,97 +2168,91 @@ int j;
+ /********* XKeyboardState functions *****/
+-long  make_XKeyboardState (){
++long 
++make_XKeyboardState (void){
+           return ((long) calloc(1, sizeof(XKeyboardState)));
+ }
+-char *XKeyboardState_auto_repeats(i)
+-XKeyboardState* i;
++char *
++XKeyboardState_auto_repeats (XKeyboardState *i)
+ {
+           return(i->auto_repeats);
+ }
+-void set_XKeyboardState_auto_repeats(i, j)
+-XKeyboardState* i;
+-char  *j;
++void 
++set_XKeyboardState_auto_repeats (XKeyboardState *i, char *j)
+ {
+           strcpy(i->auto_repeats,  j);
+ }
+-int  XKeyboardState_global_auto_repeat(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_global_auto_repeat (XKeyboardState *i)
+ {
+           return(i->global_auto_repeat);
+ }
+-void set_XKeyboardState_global_auto_repeat(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_global_auto_repeat (XKeyboardState *i, int j)
+ {
+           i->global_auto_repeat = j;
+ }
+-int  XKeyboardState_led_mask(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_led_mask (XKeyboardState *i)
+ {
+           return(i->led_mask);
+ }
+-void set_XKeyboardState_led_mask(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_led_mask (XKeyboardState *i, int j)
+ {
+           i->led_mask = j;
+ }
+-int  XKeyboardState_bell_duration(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_bell_duration (XKeyboardState *i)
+ {
+           return(i->bell_duration);
+ }
+-void set_XKeyboardState_bell_duration(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_bell_duration (XKeyboardState *i, int j)
+ {
+           i->bell_duration = j;
+ }
+-int  XKeyboardState_bell_pitch(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_bell_pitch (XKeyboardState *i)
+ {
+           return(i->bell_pitch);
+ }
+-void set_XKeyboardState_bell_pitch(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_bell_pitch (XKeyboardState *i, int j)
+ {
+           i->bell_pitch = j;
+ }
+-int  XKeyboardState_bell_percent(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_bell_percent (XKeyboardState *i)
+ {
+           return(i->bell_percent);
+ }
+-void set_XKeyboardState_bell_percent(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_bell_percent (XKeyboardState *i, int j)
+ {
+           i->bell_percent = j;
+ }
+-int  XKeyboardState_key_click_percent(i)
+-XKeyboardState* i;
++int 
++XKeyboardState_key_click_percent (XKeyboardState *i)
+ {
+           return(i->key_click_percent);
+ }
+-void set_XKeyboardState_key_click_percent(i, j)
+-XKeyboardState* i;
+-int j;
++void 
++set_XKeyboardState_key_click_percent (XKeyboardState *i, int j)
+ {
+           i->key_click_percent = j;
+ }
+@@ -2408,45 +2260,43 @@ int j;
+ /********* XTimeCoord functions *****/
+-long  make_XTimeCoord (){
++long 
++make_XTimeCoord (void){
+           return ((long) calloc(1, sizeof(XTimeCoord)));
+ }
+-int  XTimeCoord_y(i)
+-XTimeCoord* i;
++int 
++XTimeCoord_y (XTimeCoord *i)
+ {
+           return(i->y);
+ }
+-void set_XTimeCoord_y(i, j)
+-XTimeCoord* i;
+-int j;
++void 
++set_XTimeCoord_y (XTimeCoord *i, int j)
+ {
+           i->y = j;
+ }
+-int  XTimeCoord_x(i)
+-XTimeCoord* i;
++int 
++XTimeCoord_x (XTimeCoord *i)
+ {
+           return(i->x);
+ }
+-void set_XTimeCoord_x(i, j)
+-XTimeCoord* i;
+-int j;
++void 
++set_XTimeCoord_x (XTimeCoord *i, int j)
+ {
+           i->x = j;
+ }
+-int  XTimeCoord_time(i)
+-XTimeCoord* i;
++int 
++XTimeCoord_time (XTimeCoord *i)
+ {
+           return(i->time);
+ }
+-void set_XTimeCoord_time(i, j)
+-XTimeCoord* i;
+-int j;
++void 
++set_XTimeCoord_time (XTimeCoord *i, int j)
+ {
+           i->time = j;
+ }
+@@ -2454,32 +2304,31 @@ int j;
+ /********* XModifierKeymap functions *****/
+-long  make_XModifierKeymap (){
++long 
++make_XModifierKeymap (void){
+           return ((long) calloc(1, sizeof(XModifierKeymap)));
+ }
+-long  XModifierKeymap_modifiermap(i)
+-XModifierKeymap* i;
++long 
++XModifierKeymap_modifiermap (XModifierKeymap *i)
+ {
+           return((long) i->modifiermap);
+ }
+-void set_XModifierKeymap_modifiermap(i, j)
+-XModifierKeymap* i;
+-long j;
++void 
++set_XModifierKeymap_modifiermap (XModifierKeymap *i, long j)
+ {
+           i->modifiermap = (KeyCode *) j;
+ }
+-int  XModifierKeymap_max_keypermod(i)
+-XModifierKeymap* i;
++int 
++XModifierKeymap_max_keypermod (XModifierKeymap *i)
+ {
+           return(i->max_keypermod);
+ }
+-void set_XModifierKeymap_max_keypermod(i, j)
+-XModifierKeymap* i;
+-int j;
++void 
++set_XModifierKeymap_max_keypermod (XModifierKeymap *i, int j)
+ {
+           i->max_keypermod = j;
+ }
+--- gcl27-2.7.1.orig/xgcl-2/Xutil-2.c
++++ gcl27-2.7.1/xgcl-2/Xutil-2.c
+@@ -25,31 +25,38 @@
+ #include <X11/Xresource.h>
+ #include <X11/keysym.h>
+-int IsKeypadKey(keysym) int keysym; { 
++int IsKeypadKey (int keysym) { 
+  return  (((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal));}
+-int IsCursorKey(keysym) int keysym; { 
++int 
++IsCursorKey (int keysym)
++{ 
+   return (((unsigned)(keysym) >= XK_Home)     && ((unsigned)(keysym) <  XK_Select));}
+-int IsPFKey(keysym) int keysym; { 
++int 
++IsPFKey (int keysym) { 
+   return (((unsigned)(keysym) >= XK_KP_F1)     && ((unsigned)(keysym) <= XK_KP_F4));}
+-int IsFunctionKey(keysym) int keysym; { 
++int 
++IsFunctionKey (int keysym) { 
+   return (((unsigned)(keysym) >= XK_F1)       && ((unsigned)(keysym) <= XK_F35));}
+-int IsMiscFunctionKey(keysym) int keysym; { 
++int 
++IsMiscFunctionKey (int keysym) { 
+   return (((unsigned)(keysym) >= XK_Select)   && ((unsigned)(keysym) <  XK_KP_Space));}
+-int IsModifierKey(keysym) int keysym; { 
++int 
++IsModifierKey (int keysym) { 
+   return (((unsigned)(keysym) >= XK_Shift_L)  && ((unsigned)(keysym) <= XK_Hyper_R));}
+-int XUniqueContext() 
++int 
++XUniqueContext (void) 
+ {
+               return( ((int)XrmUniqueQuark()) );
+ }
+-int XStringToContext(string) 
+-      char *string; 
++int 
++XStringToContext (char *string) 
+ {
+       return( (int)XrmStringToQuark(string) );
+ }
diff --git a/debian/patches/Version_2_7_2pre9 b/debian/patches/Version_2_7_2pre9
new file mode 100644 (file)
index 0000000..7784916
--- /dev/null
@@ -0,0 +1,49 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Camm Maguire <camm@debian.org>
+Date: Feb, 19 2026 22:24:25 +0000
+Subject: [PATCH] <short summary of the patch>
+
+TODO: Put a short summary on the line above and replace this paragraph
+with a longer explanation of this change. Complete the meta-information
+with other relevant fields (see below for details). To make it easier, the
+information below has been extracted from the changelog. Adjust it or drop
+it.
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
+Bug: <upstream-bugtracker-url>
+Bug-<Vendor>: <vendor-bugtracker-url>
+Forwarded: (no|not-needed|<patch-forwarded-url>)
+Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
+Reviewed-By: <name and email of someone who approved/reviewed the patch>
+
+--- gcl27-2.7.1.orig/Makefile.am
++++ gcl27-2.7.1/Makefile.am
+@@ -459,6 +459,7 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
++      chmod +x bin/c23.awk
+       $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+--- gcl27-2.7.1.orig/Makefile.in
++++ gcl27-2.7.1/Makefile.in
+@@ -4907,6 +4907,7 @@ h/cmpincludea.h: $(filter-out gclincl.h,
+               $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@
+ o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk
++      chmod +x bin/c23.awk
+       $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@
+ h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h
+--- gcl27-2.7.1.orig/git.tag
++++ gcl27-2.7.1/git.tag
+@@ -1,2 +1,2 @@
+-"Version_2_7_2pre8"
++"Version_2_7_2pre9"
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..c6fbaf1
--- /dev/null
@@ -0,0 +1,33 @@
+Version_2_7_2pre1
+Version_2_7_2pre2
+Version_2_7_2ore3
+Version_2_7_2pre5
+Version_2_7_2pre6
+Version_2_7_2pre7
+Version_2_7_2pre8
+Version_2_7_2pre9
+Version_2_7_2pre10
+Version_2_7_2pre11
+Version_2_7_2pre12
+Version_2_7_2pre13
+Version_2_7_2pre14
+Version_2_7_2pre15
+Version_2_7_2pre16
+Version_2_7_2pre17
+Version_2_7_2pre18
+Version_2_7_2pre19
+Version_2_7_2pre20
+Version_2_7_2pre21
+Version_2_7_2pre22
+Version_2_7_2pre23
+Version_2_7_2pre24
+Version_2_7_2pre25
+Version_2_7_2pre26
+Version_2_7_2pre27
+Version_2_7_2pre28
+Version_2_7_2pre30
+Version_2_7_2pre31
+Version_2_7_2pre32
+Version_2_7_2pre33
+Version_2_7_2pre34
+Version_2_7_2pre35
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644 (file)
index 0000000..cc632a9
--- /dev/null
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] gcl27.templates
diff --git a/debian/po/ca.po b/debian/po/ca.po
new file mode 100644 (file)
index 0000000..7c78e1a
--- /dev/null
@@ -0,0 +1,77 @@
+# Catalan translation of gcl27's debconf messages
+# Copyright © 2025 poc senderi <pocsenderi@protonmail.com>
+# This file is distributed under the same license as the gcl27 package.
+# poc senderi <pocsenderi@protonmail.com>, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl27\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-05-03 13:26+0000\n"
+"PO-Revision-Date: 2025-10-19 12:10+0200\n"
+"Last-Translator: poc senderi <pocsenderi@protonmail.com>\n"
+"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.4.2\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr ""
+"Voleu usar de manera predeterminada la versió, que encara s'hi està "
+"treballant, ANSI?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"El GCL es troba en procés d'oferir una imatge conforme a ANSI a més a més de "
+"la imatge tradicional CLtL1 que encara es troba en producció. Mireu el "
+"fitxer README.Debian per una breu descripció sobre aquests termes. Establir "
+"aquesta variable determinarà quina imatge s'usarà per defecte quan s'executi "
+"«gcl27». Podeu canviar localment aquesta decisió establint la variable "
+"d'entorn GCL_ANSI a qualsevol cosa tret de «no» per a la versió ANSI, i a "
+"«no» per a la versió CLtL1, per exemple «GCL_ANSI=t gcl27». La versió activa "
+"es mostrarà al bàner inicial durant l'engegada."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Voleu usar per defecte la versió de perfilació?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"El GCL ara disposa de compatibilitat opcional per a la perfilació usant el "
+"«gprof». Per als detalls, vegeu la documentació de «si::gprof-start» i «si::"
+"gprof-quit». Atès que aquesta versió és més lenta que d'altres sense "
+"compatibilitat amb el «gprof», no es recomana per a l'ús en producció. Podeu "
+"canviar localment la decisió predeterminada feta aquí establint la variable "
+"d'entorn GCL_PROF a qualsevol cosa tret d'una cadena buida per a la "
+"compatibilitat amb perfilació, i a una cadena buida per a les versions més "
+"optimitzades, per exemple «GCL_PROF=t gcl27». Si la perfilació està "
+"activada, això es mostrarà al bàner inicial durant l'engegada."
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644 (file)
index 0000000..15a9685
--- /dev/null
@@ -0,0 +1,149 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2007-12-24 13:21+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Používat implicitně ANSI verzi (stále ve vývoji)?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Používat implicitně profilování?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL se nachází ve fázi, kdy kromě tradičního obrazu CLtL1 (který se stále "
+#~ "používá) poskytuje i obraz kompatibilní s ANSI."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Pro stručný popis těchto termínů si prosím přečtěte soubor README.Debian. "
+#~ "Touto odpovědí určujete, který obraz se spustí po zadání „gcl@EXT@“. "
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Toto nastavení můžete přebít nastavením proměnné prostředí GCL_ANSI na "
+#~ "neprázdný řetězec (použije ANSI verzi) nebo na prázdnou hodnotu (použije "
+#~ "CLtL1 verzi). Například GCL_ANSI=t gcl@EXT@. Aktuálně použitá verze se "
+#~ "zobrazí na úvodní obrazovce."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL nyní podporuje profilování přes gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Podrobnosti naleznete v dokumentaci si::gprof-start a si::gprof-quit. "
+#~ "Tato verze je pomalejší než verze bez podpory gprof, tudíž ji "
+#~ "nedoporučujeme pro koncové produkční nasazení."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Toto nastavení můžete přebít nastavením proměnné prostředí GCL_PROF na "
+#~ "neprázdný řetězec (zapne profilování) nebo na prázdnou hodnotu (povolí "
+#~ "lepší optimalizace). Například GCL_PROF=t gcl@EXT@. Pokud je profilování "
+#~ "zapnuto, dozvíte se o tom z úvodní obrazovky."
+
+#~ msgid ""
+#~ "GCL is one of the oldest free common lisp systems still in use. Several "
+#~ "production systems have used it for over a decade.  The common lisp "
+#~ "standard in effect when GCL was first released is known as \"Common Lisp, "
+#~ "the Language\" (CLtL1) after a book by Steele of the same name providing "
+#~ "this specification.  Subsequently, a much expanded standard was adopted "
+#~ "by the American National Standards Institute (ANSI), which is still "
+#~ "considered the definitive common lisp language specification to this "
+#~ "day.  GCL is in the process of providing an ANSI compliant image in "
+#~ "addition to its traditional CLtL1 image still in production use.  Setting "
+#~ "this variable will determine which image you will use by default on "
+#~ "executing 'gcl'.  You can locally override this choice by setting the "
+#~ "GCL_ANSI environment variable to any non-empty string for the ANSI build, "
+#~ "and to the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl.  You "
+#~ "may be interested in reviewing the ANSI test results sketching the level "
+#~ "of compliance achieved thus far in /usr/share/doc/gcl/test_results.gz.  "
+#~ "The flavor of the build in force will be reported in the initial startup "
+#~ "banner."
+#~ msgstr ""
+#~ "GCL je jedním z nejstarších svobodných systémů common lispu, který se "
+#~ "dosud používá. Několik produkčních systémů jej používá déle než dekádu. "
+#~ "Při prvním vydání GCL byl v platnosti standard common lispu známý jako "
+#~ "\"Common Lisp, the Language\" (CLtL1) pojmenovaný podle Steelovy knihy "
+#~ "stejného jména, která tento standard definovala. Americkým národním "
+#~ "institutem pro standardizaci (ANSI) pak byl přijat podstatně rozšířený "
+#~ "standard, který se do dnešní doby považuje za konečnou specifikaci common "
+#~ "lispu. Kromě tradičního CLtL1 se GCL snaží nabídnout i verzi odpovídající "
+#~ "ANSI standardu. Nastavením této proměnné určíte, jakým způsobem se má "
+#~ "binárka 'gcl' chovat. Lokálně můžete toto nastavení přepsat nastavením "
+#~ "proměnné prostředí GCL_ANSI na neprázdný řetězec (zapne ANSI chování) "
+#~ "nebo na prázdnou hodnotu (zapne CLtL1 chování). Například GCL_ANSI-t gcl. "
+#~ "Aktuálně vybraný standard bude zobrazen v úvodní obrazovce prostředí. "
+#~ "Zajímavé může být porovnání dosud dosažené shody s ANSI standardem v "
+#~ "souboru /usr/share/doc/gcl/test_results.gz."
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644 (file)
index 0000000..30cc0ad
--- /dev/null
@@ -0,0 +1,109 @@
+# Danish translation gcl.
+# Copyright (C) 2012 gcl & nedenstående oversættere.
+# This file is distributed under the same license as the gcl package.
+# Joe Hansen (joedalton2@yahoo.dk), 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2012-03-31 12:42+0000\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Brug den foreløbige ANSI bygget som standard?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Brug profileringen bygget som standard?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL er i gang med at tilbyde et ANSI-overholdende aftryk udover det "
+#~ "traditionelle CLtL1-aftryk som stadig er i produktionsbrug."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Se venligst filen README.Debian for en kort beskrivelse af disse termer. "
+#~ "Valg af denne indstilling vil bestemme hvilket aftryk som vil blive brugt "
+#~ "som standard, når der køres »gcl@EXT@«."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Denne indstilling kan overskrives ved at angive miljøvariablen GCL_ANSI "
+#~ "til enhver streng der ikke er tom for ANSI-bygningen, og til den tomme "
+#~ "streng for CLtL1-bygningen, f.eks. GCL_ANSI=t gcl@EXT@. Den aktuelt "
+#~ "tvungne byggevariant vil blive rapporteret i det oprindelige "
+#~ "opstartsbanner."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL har valgfri understøttelse for profilering via gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Se venligst dokumentationen for si::gprof-start og si::gprof-quit for "
+#~ "detaljer. Da denne bygning er langsommere end bygninger uden gprof-"
+#~ "understøttelse, så anbefales den ikke for endelig produktionsbrug."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Angiv miljøvariablen GCL_PROF til den tomme streng for bedre optimerede "
+#~ "bygninger, eller enhver streng der ikke er tom for "
+#~ "profileringsunderstøttelse; f.eks. GCL_PROF=t gcl@EXT@. Hvis profilering "
+#~ "er aktiveret, vil denne blive rapporteret i det oprindelige "
+#~ "opstartsbanner."
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644 (file)
index 0000000..1a15c03
--- /dev/null
@@ -0,0 +1,126 @@
+# Translation of gcl debconf templates to German
+# Copyright (C) Stefan Bauer <stefan.bauer@edv-fix.de>, 2007.
+# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2007, 2008, 2025.
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the gcl package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl 2.7.1-4\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2025-05-07 19:26+0200\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: de <debian-l10n-german@lists.debian.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Standardmäßig den sich in Arbeit befindenden ANSI-Build verwenden?"
+
+# FIXME »no« both for the ANSI-Build and for the CLtL1 build? Sentence also strange
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"GCL arbeitet neben dem traditionellen CLtL1-Abbild für den Produktiveinsatz "
+"zusätzlich an der Bereitstellung eines kompatiblen ANSI-Abbildes. Bitte "
+"beachten Sie die README.Debian-Datei für eine kurze Beschreibung dieses "
+"Themas. Durch diese Variable definieren Sie, welches Abbild voreingestellt "
+"bei der Ausführung von gcl27 verwendet wird. Diese Auswahl kann lokal durch "
+"jede Zeichenkette außer »no« für den ANSI-Bau und »no« für den CLtL1-Bau "
+"außer Kraft gesetzt werden, z.B. GCL_ANSI=t gcl27. Die Variante des "
+"geltenden Baus wird im einführenden Start-Banner berichtet."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Standardmäßig den Profiling-Build verwenden?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"GCL besitzt optionale Unterstützung für Profiling mit Gprof. Bitte lesen Sie "
+"hierzu die Dokumentation von si::gprof-start und si::gprof-quit für "
+"weiterführende Informationen. Da dieser Bau langsamer ist als ohne Gprof-"
+"Unterstützung, wird dieser Weg nicht für den endgültigen produktiven Einsatz "
+"empfohlen. Sie können die hier gemachten Angaben lokal über die GCL_PROF-"
+"Umgebungsvariable durch einen beliebigen Wert ersetzen, bzw. durch einen "
+"leeren Wert für den weitaus anpassungsfähigeren Bau, z.B. GCL_PROF=t gcl27. "
+"Falls Profiling aktiviert ist, erfolgt eine Meldung im einführenden Start-"
+"Banner."
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL ist derzeit dabei, zusätzlich zu dem noch im Einsatz befindlichen "
+#~ "traditionellen CLtL1-Abbild ein ANSI-konformes Abbild bereitzustellen."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Bitte lesen Sie die Datei README.Debian fr eine kurze Beschreibung dieser "
+#~ "Begriffe. Die Wahl dieser Option bestimmen, welches Image standardmig "
+#~ "verwendet wird, wenn gcl@EXT@ ausgefhrt wird."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Diese Einstellung kann mit der Umgebungsvariablen GCL_ANSI berschrieben "
+#~ "werden. Jede nicht-leere Zeichenkette führt zur ANSI-Erstellung, und die "
+#~ "leere Zeichenkette fhrt zum CLtL1-Bau, z.B. GCL_ANSI=t gcl@EXT@. In der "
+#~ "Startmeldung wird die derzeit erzwungene Bauart berichtet."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL besitzt optionale Untersttzung fr Profiling mittels Gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Bitte lesen Sie die Dokumentation für si::gprof-start und si::gprof-quit "
+#~ "fr Details. Da ein solches Programm langsamer ist als ein Programm ohne "
+#~ "Gprof-Untersttzung, wird dies fr den Produktiveinsatz nicht empfohlen."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Setzen Sie die Umgebungsvariable GCL_PROF auf die leere Zeichenkette, um "
+#~ "ein optimiertes Programm zu erhalten oder auf irgendeine nicht-leere "
+#~ "Zeichenkette, für Profiling-Untersttzung; z.B. GCL_PROF=t gcl@EXT@. Falls "
+#~ "Profiling aktiviert ist, wird dies in der Startmeldung angezeigt."
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644 (file)
index 0000000..bc4f918
--- /dev/null
@@ -0,0 +1,197 @@
+# gcl po-debconf translation to Spanish
+# Copyright (C) 2005, 2007, 2008 Software in the Public Interest
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the gcl package.
+#
+# Changes:
+#   - Initial translation
+#       César Gómez Martín <cesar.gomez@gmail.com>, 2005
+#
+#   - Updates
+#       Rudy Godoy Guillén <rudyd@stone-head.org>, 2007
+#       Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2008
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+#
+#   info -n '(gettext)PO Files'
+#   info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor, lean antes de traducir
+# los siguientes documentos:
+#
+#   - El proyecto de traducción de Debian al español
+#     http://www.debian.org/intl/spanish/
+#     especialmente las notas de traducción en
+#     http://www.debian.org/intl/spanish/notas
+#
+#   - La guía de traducción de po's de debconf:
+#     /usr/share/doc/po-debconf/README-trans
+#     o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl 2.7.1-7\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-10-06 13:08-0400\n"
+"PO-Revision-Date: 2025-06-20 16:42+0200\n"
+"Last-Translator: Camaleón <noelamac@gmail.com>\n"
+"Language-Team: Debian l10n spanish <debian-l10n-spanish@lists.debian.org>\n"
+"Language: es_ES\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: Poedit 2.4.2\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr ""
+"¿Quiere utilizar la generación ANSI todavía en desarrollo de manera "
+"predeterminada?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the "
+"README.Debian file for a brief description of these terms.  Setting this "
+"variable will determine which image you will use by default on executing "
+"'gcl27'.  You can locally override this choice by setting the GCL_ANSI "
+"environment variable to any string but \"no\" for the ANSI build, and to "
+"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build "
+"in force will be reported in the initial startup banner."
+msgstr ""
+"GCL está en proceso de incorporar una imagen compatible con ANSI además de "
+"la imagen CLtL1 tradicional que todavía se usa en producción. Consulte el "
+"archivo README de Debian para una breve descripción acerca de estos "
+"términos. El ajuste de esta variable determinará qué imagen se utilizará de "
+"manera predeterminada cuando ejecute «gcl27». Puede anular esta elección "
+"localmente definiendo la variable de entorno GCL_ANSI a cualquier cadena de "
+"caracteres excepto «no» para la compilación ANSI, y establecerla a «no» para "
+"la compilación CLtL1, p. ej. GCL_ANSI=t gcl27. La versión de la compilación "
+"se indicará en el anuncio inicial de arranque."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "¿Quiere utilizar la generación con perfilado de manera predeterminada?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, "
+"e.g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in "
+"the initial startup banner."
+msgstr ""
+"GCL ahora dispone de soporte opcional para perfilado a través de gprof. "
+"Consulte la documentación de «si::gprof-start» y de «si::gprof-quit» y "
+"«si::gprof-quit» para más detalles. Dado que esta compilación es más lenta "
+"que otras sin soporte para gprof, no se recomienda usarlo en producción. "
+"Puede anular esta elección de forma local definiendo la variable de entorno "
+"GCL_PROF a cualquier cadena de caracteres no vacía para activar el soporte "
+"de perfilado y a una cadena de caracteres vacía para generar paquetes más "
+"optimizados, p. ej., GCL_PROF=t gcl27. Si el perfilado está activo, se "
+"indicará en el anuncio inicial de arranque."
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GL está en el proceso de proporcionar una imagen ANSI, además de su "
+#~ "imagen CLtL1 tradicional que todavía se usa."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Por favor, véase el archivo README.Debian para una descripción corta de "
+#~ "estos términos. Eligiendo esta opción determinará que imagen se usará de "
+#~ "manera predeterminada al ejecutar «gcl@EXT@»."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Esta configuración se puede sobrescribir cambiando la variable de entorno "
+#~ "GCL_ANSI a cualquier cadena de caracteres no vacía para la generación "
+#~ "ANSI, y a una cadena de caracteres vacía para la generación CLtL1, por "
+#~ "ejemplo: «GCL_ANSI=t gcl@EXT@». El actual tipo de generación se mostrará "
+#~ "en la información inicial del arranque."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL permite usar «profiling», de manera opcional, mediante gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Por favor, véase la documentación para los detalles de «si::gprof-start» "
+#~ "y «si::gprof-quit». Ya que esta generación es más lenta que sin el uso de "
+#~ "gprof, no se recomienda para su uso final."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Cambie el valor de la variable de entorno GCL_PROF a una cadena de "
+#~ "caracteres vacía para generación más optimizadas, o a una cadena de "
+#~ "caracteres no vacía para usar el «profiling», por ejemplo: «GCL_PROF=t "
+#~ "gcl@EXT@». Si el «profiling» está activado, se mostrará en la información "
+#~ "inicial del arranque."
+
+#~ msgid ""
+#~ "GCL is one of the oldest free common lisp systems still in use. Several "
+#~ "production systems have used it for over a decade.  The common lisp "
+#~ "standard in effect when GCL was first released is known as \"Common Lisp, "
+#~ "the Language\" (CLtL1) after a book by Steele of the same name providing "
+#~ "this specification.  Subsequently, a much expanded standard was adopted "
+#~ "by the American National Standards Institute (ANSI), which is still "
+#~ "considered the definitive common lisp language specification to this "
+#~ "day.  GCL is in the process of providing an ANSI compliant image in "
+#~ "addition to its traditional CLtL1 image still in production use.  Setting "
+#~ "this variable will determine which image you will use by default on "
+#~ "executing 'gcl'.  You can locally override this choice by setting the "
+#~ "GCL_ANSI environment variable to any non-empty string for the ANSI build, "
+#~ "and to the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl.  You "
+#~ "may be interested in reviewing the ANSI test results sketching the level "
+#~ "of compliance achieved thus far in /usr/share/doc/gcl/test_results.gz.  "
+#~ "The flavor of the build in force will be reported in the initial startup "
+#~ "banner."
+#~ msgstr ""
+#~ "GCL es uno de los sistemas libres de «common lisp» más antiguos que "
+#~ "todavía se usan. Varios sistemas en producción han estado usándolo "
+#~ "durante más de una década. Cuando GCL se liberó por primera vez, el "
+#~ "estándar «common lisp» se conocía como «Common Lisp, the Language» "
+#~ "(CLtL1) después de un libro escrito por Steele que llevaba el mismo "
+#~ "nombre y que proporcionaba esta especificación. Posteriormente se adoptó "
+#~ "en el Instituto Nacional de Estándares Americano (ANSI) un estándar más "
+#~ "extendido, que todavía se considera la especificación definitiva del "
+#~ "lenguaje «common lisp» hasta hoy. GCL está en el proceso de proporcionar "
+#~ "una imagen conforme a ANSI además de su imagen CltL1 tradicional que "
+#~ "todavía se usa en producción. Al establecer esta variable se determinará "
+#~ "la imagen por omisión que usará al ejecutar «gcl». Puede anular esta "
+#~ "elección de forma local mediante el establecimiento de la variable de "
+#~ "entorno GCL_ANSI a cualquier cadena no vacía para el paquete ANSI, y a la "
+#~ "cadena vacía para el paquete CLtL1, i.e. GCL_ANSI=t gcl. Quizás esté "
+#~ "interesado en revisar los resultados de las pruebas ANSI describiendo el "
+#~ "nivel de conformidad logrado hasta ahora en /usr/share/doc/gcl/"
+#~ "test_results.gz. Se informará del tipo de paquete usado en el anuncio "
+#~ "inicial de arranque."
diff --git a/debian/po/fi.po b/debian/po/fi.po
new file mode 100644 (file)
index 0000000..4eac1a7
--- /dev/null
@@ -0,0 +1,105 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2007-12-29 23:28+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: Finland\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Käytetäänkö kehitettävää ANSI-käännöstä oletuksena?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Käytetäänkö profilointia oletuksena?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL:n on tarkoitus tarjota ANSI-yhteensopiva kuva perinteisen, vielä "
+#~ "tuotantokäytössä olevan CLtL1-kuvan lisäksi."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Tiedostosta README.Debian löytyy (englanniksi) näiden termien lyhyet "
+#~ "kuvaukset. Tämä valinta vaikuttaa siihen mitä kuvaa käytetään oletuksena "
+#~ "ajettaessa ”gcl@EXT@”."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Tämä asetus voidaan ohittaa asettamalla GCL_ANSI-ympäristömuuttuja. Jos "
+#~ "muuttujan arvo on mikä tahansa ei-tyhjä merkkijono, käytetään ANSI-"
+#~ "käännöstä, ja jos muuttujan arvo on tyhjä merkkijono, käytetään CLtL1-"
+#~ "käännöstä. Esimerkiksi: GCL_ANSI=t gcl@EXT@. Käytetty pakotettu "
+#~ "käännöstapa raportoidaan käynnistysruudussa."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL tukee valinnaisesti profilointia gprofin avulla."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Katso yksityiskohdat (englanniksi) dokumentaatiosta kohdista si::gprof-"
+#~ "start ja si::gprof-quit. Koska tämä käännös on hitaampi kuin käännökset "
+#~ "ilman gprof-tukea, tätä ei suositella tuotantokäyttöön."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Aseta GCL_PROF-ympäristömuuttuja tyhjäksi merkkijonoksi käyttääksesi "
+#~ "optimoidumpia käännöksiä ja miksi tahansa ei-tyhjäksi merkkijonoksi "
+#~ "käyttääksesi profilointia. Esimerkiksi: GCL_PROF=t gcl@EXT@. Jos "
+#~ "profilointi on aktivoituna, se raportoidaan käynnistysruudussa."
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644 (file)
index 0000000..b6f8b1e
--- /dev/null
@@ -0,0 +1,148 @@
+# Translation of gcl debconf templates to French
+# Copyright (C) 2007 Sylvain Archenault <sylvain.archenault@laposte.net>
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the iodine package.
+#
+# Sylvain Archenault <sylvain.archenault@laposte.net>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl 2.6.7-1\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2007-12-23 13:03+0100\n"
+"Last-Translator: Sylvain Archenault <sylvain.archenault@laposte.net>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Faut-il utiliser la compilation ANSI par dfaut?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+#, fuzzy
+#| msgid ""
+#| "GCL is in the process of providing an ANSI compliant image in addition to "
+#| "its traditional CLtL1 image still in production use.  Please see the "
+#| "README.Debian file for a brief description of these terms.  Setting this "
+#| "variable will determine which image you will use by default on executing "
+#| "'gcl@EXT@'.  You can locally override this choice by setting the GCL_ANSI "
+#| "environment variable to any non-empty string for the ANSI build, and to "
+#| "the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@.  The "
+#| "flavor of the build in force will be reported in the initial startup "
+#| "banner."
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"GCL a pour but de fournir une image conforme  la dfinition de l'ANSI en plus "
+"de son image traditionnelle CLtL1 qui est toujours utilise en production. "
+"Veuillez consulter le fichier README.Debian pour plus d'informations sur ces "
+"normes. Ce choix dterminera quelle norme vous allez utiliser par dfaut lors "
+"de l'excution de gcl@EXT@. Vous pouvez localement modifier ce choix en "
+"affectant une chane non vide  la variable d'environnement GCL_ANSI pour une "
+"compilation respectant la norme dfinie par l'ANSI, et une chane vide pour "
+"une compilation en accord avec la norme CLtL1, par exemple GCL_ANSI=t "
+"gcl@EXT@. Le type de compilation sera affich dans le bandeau de dmarrage."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Faut-il utiliser le profilage par dfaut?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+#, fuzzy
+#| msgid ""
+#| "GCL now has optional support for profiling via gprof.  Please see the "
+#| "documentation for si::gprof-start and si::gprof-quit for details. As this "
+#| "build is slower than builds without gprof support, it is not recommended "
+#| "for final production use. You can locally override the default choice "
+#| "made here by setting the GCL_PROF environment variable to any non-empty "
+#| "string for profiling support, and to the empty string for the more "
+#| "optimized builds, e.g. GCL_PROF=t gcl@EXT@.  If profiling is enabled, "
+#| "this will be reported in the initial startup banner."
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"GCL gre dsormais le profilage via gprof. Veuillez consulter la documentation "
+"de si::gprof-start et de si::gprof-quit pour plus d'informations. La "
+"construction produite avec cette option est plus lente que la construction "
+"classique. Par consquent il n'est pas recommand de l'utiliser en production. "
+"Vous pouvez localement modifier ce choix en affectant  la variable "
+"d'environnement GCL_PROF, une chane non vide pour activer le profilage, ou "
+"une chane vide pour une compilation optimise, par exemple GCL_PROF=t "
+"gcl@EXT@. Si le profilage est activ, cela sera affich dans le bandeau de "
+"dmarrage."
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL est en passe de fournir une image respectant la norme ANSI en plus de "
+#~ "l'image traditionnelle CLtL1, toujours utilise en production."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Veuillez lire le fichier README.Debian pour une brve description de ces "
+#~ "termes. Le choix de cette option dterminera quelle image sera utilise par "
+#~ "dfaut en excutant gcl@EXT@."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Ce rglage peut tre chang en affectant  la variable d'environnement "
+#~ "GCL_ANSI une chane non vide pour la compilation ANSI, et une chane vide "
+#~ "pour la compilation CLtL1, par exemple GCL_ANSI=t gcl@EXT@. Le type de "
+#~ "compilation sera affich dans le bandeau de dmarrage."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL permet optionnellement la gestion du profilage via gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Veuillez vous reporter  la documentation de si::gprof-start et si::gprof-"
+#~ "quit pour plus de dtails. Comme cet excutable est plus lent que les "
+#~ "excutables sans la gestion de gprof, il n'est pas recommand de l'utiliser "
+#~ "en production."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Veuillez affecter une chane vide  la variable d'environnement GCL_PROF "
+#~ "pour des compilations optimises, ou une chane non vide pour avoir la "
+#~ "gestion du profilage; par exemple GCL_PROF=t gcl@EXT@. Si le profilage "
+#~ "est activ, cela sera affich dans le bandeau de dmarrage."
diff --git a/debian/po/gl.po b/debian/po/gl.po
new file mode 100644 (file)
index 0000000..afcf35c
--- /dev/null
@@ -0,0 +1,147 @@
+# Galician translation of gclcvs's debconf templates
+# This file is distributed under the same license as the gclcvs package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gclcvs\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2008-01-01 13:38+0000\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "¿Empregar por defecto a versión ANSI que se está a facer?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+#, fuzzy
+#| msgid ""
+#| "GCL is in the process of providing an ANSI compliant image in addition to "
+#| "its traditional CLtL1 image still in production use.  Please see the "
+#| "README.Debian file for a brief description of these terms.  Setting this "
+#| "variable will determine which image you will use by default on executing "
+#| "'gcl@EXT@'.  You can locally override this choice by setting the GCL_ANSI "
+#| "environment variable to any non-empty string for the ANSI build, and to "
+#| "the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@.  The "
+#| "flavor of the build in force will be reported in the initial startup "
+#| "banner."
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"Estase a traballar para que GCL forneza unha imaxe ANSI ademáis da imaxe "
+"CLtL1 que aínda se emprega en produción. Consulte o ficheiro README.Debian "
+"para ver unha descrición breve deses termos. Ao estabrecer esa variable ha "
+"determinar a imaxe que ha empregar por defecto ao executar \"gcl@EXT@\". "
+"Pode empregar a outra imaxe estabrecendo a variable de ambiente GCL_ANSI a "
+"calquera cadea non baleira para empregar a versión ANSI, e á cadea baleira "
+"para empregar a versión CLtL1; por exemplo, GCL_ANSI=t gcl@EXT@. Hase "
+"informar da versión en uso no cartel que aparece ao iniciar o programa."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "¿Empregar por defecto a versión con cronometrado?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+#, fuzzy
+#| msgid ""
+#| "GCL now has optional support for profiling via gprof.  Please see the "
+#| "documentation for si::gprof-start and si::gprof-quit for details. As this "
+#| "build is slower than builds without gprof support, it is not recommended "
+#| "for final production use. You can locally override the default choice "
+#| "made here by setting the GCL_PROF environment variable to any non-empty "
+#| "string for profiling support, and to the empty string for the more "
+#| "optimized builds, e.g. GCL_PROF=t gcl@EXT@.  If profiling is enabled, "
+#| "this will be reported in the initial startup banner."
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"GCL agora ten soporte opcional de cronometrado mediante gprof. Consulte a "
+"documentación de si::gprof-start e si::gprof-quit para máis detalles. Xa que "
+"esta versión é máis lenta que as que non teñen soporte de gprof, non se "
+"recomenda que a empregue para o uso en produción. Pode empregar unha versión "
+"distinta á seleccionada estabrecendo a variable de ambiente GCL_PROF a "
+"calquera cadea non baleira para empregar o soporte de cronometrado, ou á "
+"cadea baleira para as versións máis optimizadas; por exemplo, GCL_PROF=t "
+"gcl@EXT@. Se está activado o cronometrado, hase informar diso no cartel que "
+"aparece ao iniciar o programa."
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "Estase a traballar para que GCL forneza unha imaxe ANSI ademáis da imaxe "
+#~ "CLtL1 que aínda se emprega en produción."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Consulte o ficheiro README.Debian para ver unha descrición breve deses "
+#~ "termos. Ao establecer esa variable ha determinar a imaxe que ha empregar "
+#~ "por defecto ao executar \"gcl@EXT@\"."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Pode empregar a outra imaxe establecendo a variable de ambiente GCL_ANSI "
+#~ "a calquera cadea non baleira para empregar a versión ANSI, e á cadea "
+#~ "baleira para empregar a versión CLtL1; por exemplo, GCL_ANSI=t gcl@EXT@. "
+#~ "Hase informar da versión en uso no cartel que aparece ao iniciar o "
+#~ "programa."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL agora ten soporte opcional de cronometrado mediante gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Consulte a documentación de si::gprof-start e si::gprof-quit para máis "
+#~ "detalles. Xa que esta versión é máis lenta que as que non teñen soporte "
+#~ "de gprof, non se recomenda que a empregue para o uso en produción."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Pode empregar unha versión distinta á seleccionada establecendo a "
+#~ "variable de ambiente GCL_PROF a calquera cadea non baleira para empregar "
+#~ "o soporte de cronometrado, ou á cadea baleira para as versións máis "
+#~ "optimizadas; por exemplo, GCL_PROF=t gcl@EXT@. Se está activado o "
+#~ "cronometrado, hase informar diso no cartel que aparece ao iniciar o "
+#~ "programa."
diff --git a/debian/po/in.POTFILES.in b/debian/po/in.POTFILES.in
new file mode 100644 (file)
index 0000000..f8a5ae1
--- /dev/null
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] gcl@EXT@.templates
diff --git a/debian/po/it.po b/debian/po/it.po
new file mode 100644 (file)
index 0000000..0f99efa
--- /dev/null
@@ -0,0 +1,112 @@
+# ITALIAN TRANSLATION OF GCL'S PO-DEBCONF FILE.
+# COPYRIGHT (C) 2009 THE GCL'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the gcl package.
+#
+# Vincenzo Campanella <vinz65@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2009-11-29 08:39+0100\n"
+"Last-Translator: Vincenzo Campanella <vinz65@gmail.com>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr ""
+"Usare in modo predefinito la compilazione ANSI, che è in fase di "
+"approntamento?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Usare il profiling in modo predefinito?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "Accanto all'immagine tradizionale CLtL1, in uso in realtà produttive, GCL "
+#~ "sta preparando un'immagine conforme ad ANSI."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Per maggiori informazioni consultare il file «README.Debian». La scelta "
+#~ "di questa opzione determinerà quale immagine verrà utilizzata in modo "
+#~ "predefinito durante l'esecuzione di «gcl@EXT@»."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Questa impostazione può essere sovrascritta impostando la variabile "
+#~ "d'ambiente «GCL_ANSI» con una stringa non vuota per la compilazione ANSI "
+#~ "e con una stringa vuota per la compilazione CLtL1, per esempio: "
+#~ "«GCL_ANSI=t gcl@EXT@». Il tipo di compilazione attualmente in uso viene "
+#~ "mostrato nella schermata di avvio."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL possiede un supporto opzionale per il profiling tramite gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Per maggiori dettagli consultare la documentazione per «si::gprof-start» "
+#~ "e «si::gprof-quit». Poiché questa compilazione è più lenta, rispetto a "
+#~ "quella senza supporto per gprof, non è raccomandata per un utilizzo in "
+#~ "realtà produttive."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Per compilazioni ottimizzate impostare la variabile d'ambiente «GCL_PROF» "
+#~ "a una stringa vuota, oppure per impostare il supporto al profiling "
+#~ "impostarla a una stringa non vuota, per esempio «GCL_PROF=t gcl@EXT@». La "
+#~ "schermata d'avvio indicherà se il profiling è abilitato."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644 (file)
index 0000000..5834194
--- /dev/null
@@ -0,0 +1,107 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the gcl package.
+# victory <victory.deb@gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2013-07-27 23:28+0900\n"
+"Last-Translator: victory <victory.deb@gmail.com>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "未完成の ANSI ビルドをデフォルトで使用しますか?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "デフォルトで profiling ビルドを使いますか?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL は未だに生産利用されている従来の CLtL1 イメージに加えて ANSI 準拠のイ"
+#~ "メージを提供する過程にあります。"
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "用語については README.Debian ファイルに簡単な説明があります。このオプショ"
+#~ "ンの選択「gcl@EXT@」を実行するときにどのイメージをデフォルトで利用するのか"
+#~ "決定することになります。"
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "この設定は、GCL_ANSI 環境変数に ANSI ビルドでは空白ではない任意の文字列、"
+#~ "CLtL1 ビルドでは空白文字列をセットすることで上書きできます。例えば "
+#~ "GCL_ANSI=t gcl@EXT@。現在実行しているビルドの種類は初期の開始時バナーで報"
+#~ "告されます。"
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL にはオプションで gprof 経由の profiling サポートがあります。"
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "詳細については si::gprof-start や si::gprof-quit の文書を見てください。こ"
+#~ "のビルドは gprof サポートのないビルドより遅いため、最終的な生産利用にはお"
+#~ "勧めしません。"
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "ビルドをもっと最適化する場合は GCL_PROF 環境変数に空白文字列を、profiling "
+#~ "をサポートさせる場合は空白ではない任意の文字列をセットしてください。例え"
+#~ "ば GCL_PROF=t gcl@EXT@。profiling が有効な場合、初期の開始時バナーで報告さ"
+#~ "れます。"
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644 (file)
index 0000000..324ec90
--- /dev/null
@@ -0,0 +1,80 @@
+# Dutch translation of gcl27 debconf templates.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, 2025.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl27_2.7.1-4\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2025-05-12 23:27+0200\n"
+"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 3.2.2\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Wilt u standaard de in-ontwikkeling-zijnde ansi-compilatie gebruiken?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"GCL is bezig met het aanbieden van een ANSI-conform image naast zijn "
+"traditioneel CLtL1-image dat nog steeds in een productieomgeving wordt "
+"gebruikt. Raadpleeg het bestand README.Debian voor een korte beschrijving "
+"van deze termen. Door deze variabele in te stellen, bepaalt u welk image u "
+"standaard gebruikt bij het uitvoeren van 'gcl27'. U kunt deze keuze lokaal "
+"overschrijven door de omgevingsvariabele GCL_ANSI in te stellen op een "
+"willekeurige tekenreeks, behalve op 'no' voor de ANSI-compilatie en op 'no' "
+"voor de CLtL1-compilatie, bijvoorbeeld GCL_ANSI=t gcl27. Welke de van kracht "
+"zijnde compilatievorm is, zal worden gerapporteerd in de initiële "
+"opstartbanner."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr ""
+"Wilt u standaard een compilatie met ondersteuning voor profilering gebruiken?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"GCL biedt nu optionele ondersteuning voor profilering via gprof. Raadpleeg "
+"de documentatie bij si::gprof-start en si::gprof-quit voor meer informatie. "
+"Omdat deze compilatie trager is dan een compilatie zonder gprof-"
+"ondersteuning, wordt deze niet aanbevolen voor het uiteindelijke gebruik in "
+"een productieomgeving. U kunt de hier gemaakte standaardkeuze lokaal "
+"overschrijven door de omgevingsvariabele GCL_PROF in te stellen op een niet-"
+"lege tekenreeks voor profileringsondersteuning, en op de lege tekenreeks "
+"voor de meer geoptimaliseerde compilatie, bijvoorbeeld GCL_PROF=t gcl27. Als "
+"profilering is ingeschakeld, wordt dit vermeld in de initiële opstartbanner."
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644 (file)
index 0000000..95dbdab
--- /dev/null
@@ -0,0 +1,129 @@
+# translation of gcl debconf to European Portuguese
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the gcl package.
+#
+# Américo Monteiro <a_monteiro@gmx.com>, 2007 - 2025.
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl 2.7.1-4\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2025-05-07 21:40+0100\n"
+"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
+"Language-Team: Portuguese <>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 22.12.3\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Usar a compilação ainda-em-desenvolvimento ANSI por predefinição?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+"GCL está no processo de disponibilizar uma imagem compatível com ANSI "
+"adicionalmente à sua imagem tradicional CLtL1 ainda em utilização de "
+"produção. Por favor veja o ficheiro README.Debian para uma breve descrição "
+"destes termos. Definir esta variável irá determinar qual imagem você irá "
+"usar por predefinição ao executar o 'gcl27'. Você pode sobrepor localmente "
+"esta opção ao regular a variável de ambiente GCL_ANSI para qualquer string "
+"diferente de \"no\" para a compilação ANSI, e para \"no\" para a compilação "
+"CLtL1, ex. GCL_ANSI=t gcl27. O tipo de compilação imposto será reportado no "
+"banner inicial de arranque."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Usar a compilação com perfis (profiling) como predefinição?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+"O GCL agora tem suporte opcional para perfis via gprof.  Por favor veja a "
+"documentação para si::gprof-start e si::gprof-quit para detalhes. Como esta "
+"compilação é mais lenta que as compilações sem suporte a gprof, não é "
+"recomendada para utilização de produção final. Você pode sobrepor localmente "
+"a escolha predefinida feita aqui ao definir a variável de ambiente GCL_PROF "
+"para qualquer string não vazia para suporte a perfis, e para uma string "
+"vazia para as compilações mais otimizadas, ex. GCL_PROF=t gcl27.  Se os "
+"perfis estiverem activos, isso será reportado no banner inicial de arranque."
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL está no processo de disponibilizar uma imagem compatível com ANSI "
+#~ "como adição à sua imagem tradicional CLtL1 ainda em utilização de "
+#~ "produção."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Por favor veja o ficheiro README.Debian para uma breve descrição destes "
+#~ "termos. Escolher esta opção irá determinar qual imagem será usada por "
+#~ "prédefinição ao executar 'gcl@EXT@'."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Esta opção pode ser sobreposta ao regular a variável de ambiente GCL_ANSI "
+#~ "para qualquer string não-vazia para a compilação ANSI, e para uma string "
+#~ "vazia para a compilação CLtL1, como por exemplo GCL_ANSI=t gcl@EXT@. O "
+#~ "tipo de compilação actualmente imposto será reportado no banner inicial "
+#~ "de arranque."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "O GCL tem suporte opcional para 'profiling' via gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Por favor veja a documentação de si::gprof-start e si::gprof-quit para "
+#~ "mais detalhes. Como esta compilação é mais lenta do que as compilações "
+#~ "sem o suporte para gprof, não é recomendada para utilização de produção "
+#~ "final."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Regule a variável de ambiente GCL_PROF para uma string vazia para mais "
+#~ "compilações optimizadas, ou para qualquer string não-vazia para suporte "
+#~ "de 'profiling'; como por exemplo GCL_PROF=t gcl@EXT@. Se o 'profiling' "
+#~ "estiver activo, isto será reportado no banner inicial de arranque."
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644 (file)
index 0000000..57caf15
--- /dev/null
@@ -0,0 +1,109 @@
+# Debconf translations for gcl.
+# Copyright (C) 2016 THE gcl'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the gcl package.
+# Adriano Rafael Gomes <adrianorg@arg.eti.br>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2016-01-05 11:09-0200\n"
+"Last-Translator: Adriano Rafael Gomes <adrianorg@arg.eti.br>\n"
+"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
+"org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Usar a versão ANSI em desenvolvimento por padrão?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Usar a versão de \"profiling\" por padrão?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "O GCL está em processo de fornecer uma imagem de acordo com o padrão ANSI "
+#~ "em adição à sua imagem CLtL1 tradicional, ainda em uso em produção."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Por favor, veja o arquivo README.Debian para uma breve descrição desses "
+#~ "termos. Escolher essa opção determinará qual imagem será usada por padrão "
+#~ "ao executar \"gcl@EXT@\"."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Essa configuração pode ser sobreposta definindo a variável de ambiente "
+#~ "GCL_ANSI para qualquer texto não vazio para a versão ANSI, e para um "
+#~ "texto vazio para a versão CLtL1, por exemplo, GCL_ANSI=t gcl@EXT@. O "
+#~ "sabor da versão atualmente definida será exibida na mensagem de "
+#~ "inicialização."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "O GCL tem suporte opcional a \"profiling\" via gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Por favor, veja a documentação para si::gprof-start e si::gprof-quit para "
+#~ "detalhes. Como essa versão é mais lenta que versões sem suporte a gprof, "
+#~ "ela não é recomendada para uso final em produção."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Defina a variável de ambiente GCL_PROF para um texto vazio para versões "
+#~ "mais otimizadas, ou para qualquer texto não vazio para ter suporte a "
+#~ "\"profiling\"; por exemplo, GCL_PROF=t gcl@EXT@. Se o \"profiling\" "
+#~ "estiver habilitado, isso será exibido na mensagem de inicialização."
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644 (file)
index 0000000..6e8f75f
--- /dev/null
@@ -0,0 +1,111 @@
+# translation of ru.po to Russian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Copyright (C) 2024 Camm Maguire
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.6.7-36\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2008-01-03 10:22+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Использовать разрабатываемую ANSI сборку по умолчанию?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Использовать по умолчанию профилируемую сборку?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "Помимо обычного образа CLtL1, используемого в повсеместной работе, GCL "
+#~ "имеет практически готовый образ, соответствующий ANSI."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Краткое описание приведено в файле README.Debian. Данным выбором "
+#~ "определяется, какой из образов будет использован по умолчанию при "
+#~ "выполнении 'gcl@EXT@'."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Эта настройка может быть переопределена установкой переменной окружения "
+#~ "GCL_ANSI в непустое значение для ANSI сборки, а пустым значением "
+#~ "выбирается CLtL1 сборка, например GCL_ANSI=t gcl@EXT@. Текущий "
+#~ "используемый тип сборки будет показан при первом запуске."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL поддерживает необязательное профилирование через gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Подробней об этом смотрите в документации на si::gprof-start и si::gprof-"
+#~ "quit. Так как данная сборка работает медленнее чем без поддержки gprof, "
+#~ "её не рекомендуется использовать в реальной работе."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Задание переменной окружения GCL_PROF пустого значения включает более "
+#~ "оптимизированную сборку, а любое непустое -- поддержку профилирования; "
+#~ "например GCL_PROF=t gcl@EXT@. Если профилирование включено, то об этом "
+#~ "будет написано при первом запуске."
diff --git a/debian/po/sv.po b/debian/po/sv.po
new file mode 100644 (file)
index 0000000..e08465e
--- /dev/null
@@ -0,0 +1,78 @@
+# Translation of gcl27 debconf template to Swedish
+# Copyright (C) 2025 Martin Bagge <brother@persilja.net>
+# This file is distributed under the same license as the XX package.
+#
+# Martin Ågren <martin.agren@gmail.com>, 2008.
+# Martin Bagge <brother@persilja.net>, 2025.
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl_2.6.7-36.1_sv\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-10-06 13:08-0400\n"
+"PO-Revision-Date: 2025-12-12 13:47+0100\n"
+"Last-Translator: Martin Bagge <brother@persilja.net>\n"
+"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: emacs\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Använd det ännu inte färdiga ANSI-bygget som standard?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the "
+"README.Debian file for a brief description of these terms.  Setting this "
+"variable will determine which image you will use by default on executing "
+"'gcl27'.  You can locally override this choice by setting the GCL_ANSI "
+"environment variable to any string but \"no\" for the ANSI build, and to "
+"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build "
+"in force will be reported in the initial startup banner."
+msgstr ""
+"GCL arbetar på att tillhandahålla en ANSI-kompatibel avbildning utöver den "
+"traditionella CLtL1-avbildningen som alltjämt används i produktionsmiljö. "
+"Läs filen README.Debian för en kort beskrivning av dessa termer. Genom detta "
+"val bestäms vilken avbildning som används som standard när 'gcl27' "
+"exekveras. Du kan fortfarande göra lokala undantag från detta val genom att "
+"sätta miljövariabeln GCL_ANSI till en annan sträng än \"no\" för att få ANSI-"
+"avbildningen eller ange \"no\" för att få CLtL1-avbildningen. Alltså "
+"GCL_ANSI=t gcl27. Vilken avbildning som används uppges i utskriften vid "
+"uppstarten."
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Ska profilering användas som standard?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, "
+"e.g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in "
+"the initial startup banner."
+msgstr ""
+"GCL har numera möjlighet att utföra profilering med hjälp av gprof. Läs mer "
+"i dokumentationen om si::gprof-start och si::gprof-quit för närmare "
+"information. Eftersom denna typ av bygge är långsammare än utan stöd för "
+"gprof är rekommendationen att inte använda det för i produktionsmiljön. Du "
+"kan göra lokala undantag från standardvalet här genom att sätta "
+"miljövariablen GCL_PROF till en sträng som inte är tom för att få "
+"profilering aktiverat. Eller till tom sträng för ett mer optimerat bygge. "
+"Exempelvis GCL_PROF=t gcl27. Om profilering är aktiverat kommer detta att "
+"framgå i meddelandet vid start."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644 (file)
index 0000000..f9e6e6f
--- /dev/null
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the gcl27 package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl27\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-10-06 13:08-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the "
+"README.Debian file for a brief description of these terms.  Setting this "
+"variable will determine which image you will use by default on executing "
+"'gcl27'.  You can locally override this choice by setting the GCL_ANSI "
+"environment variable to any string but \"no\" for the ANSI build, and to "
+"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build "
+"in force will be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, "
+"e.g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in "
+"the initial startup banner."
+msgstr ""
diff --git a/debian/po/vi.po b/debian/po/vi.po
new file mode 100644 (file)
index 0000000..067273e
--- /dev/null
@@ -0,0 +1,111 @@
+# Vietnamese translation for GCL.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Copyright © 2024 Camm Maguire
+# Clytie Siddall <clytie@riverland.net.au>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcl 2.6.7-36\n"
+"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n"
+"POT-Creation-Date: 2025-06-01 09:56-0400\n"
+"PO-Revision-Date: 2008-01-04 16:27+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.7b1\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid "Use the work-in-progress ANSI build by default?"
+msgstr "Dùng bản xây dựng đang phát triển ANSI theo mặc định không?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:1001
+msgid ""
+"GCL is in the process of providing an ANSI compliant image in addition to "
+"its traditional CLtL1 image still in production use.  Please see the README."
+"Debian file for a brief description of these terms.  Setting this variable "
+"will determine which image you will use by default on executing 'gcl27'.  "
+"You can locally override this choice by setting the GCL_ANSI environment "
+"variable to any string but \"no\" for the ANSI build, and to \"no\" for the "
+"CLtL1 build, e.g. GCL_ANSI=t gcl27.  The flavor of the build in force will "
+"be reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid "Use the profiling build by default?"
+msgstr "Dùng bản xây dựng đo hiệu năng sử dụng theo mặc định không?"
+
+#. Type: boolean
+#. Description
+#: ../gcl27.templates:2001
+msgid ""
+"GCL now has optional support for profiling via gprof.  Please see the "
+"documentation for si::gprof-start and si::gprof-quit for details. As this "
+"build is slower than builds without gprof support, it is not recommended for "
+"final production use. You can locally override the default choice made here "
+"by setting the GCL_PROF environment variable to any non-empty string for "
+"profiling support, and to the empty string for the more optimized builds, e."
+"g. GCL_PROF=t gcl27.  If profiling is enabled, this will be reported in the "
+"initial startup banner."
+msgstr ""
+
+#~ msgid ""
+#~ "GCL is in the process of providing an ANSI compliant image in addition to "
+#~ "its traditional CLtL1 image still in production use."
+#~ msgstr ""
+#~ "GCL đang phát triển chức năng cung cấp ảnh tùy theo ANSI thêm vào ảnh "
+#~ "CLtL1 truyền thống vẫn còn được sử dụng trong trường hợp sản xuất."
+
+#~ msgid ""
+#~ "Please see the README.Debian file for a brief description of these terms. "
+#~ "Choosing this option will determine which image will be used by default "
+#~ "when executing 'gcl@EXT@'."
+#~ msgstr ""
+#~ "Xem tài liệu Đọc Đi (README.Debian) để tìm mô tả ngắn về các thuật ngữ "
+#~ "này. Bật tùy chọn này thì xác định ảnh nào cần dùng theo mặc định khi "
+#~ "thực hiện lệnh « gcl@EXT@ »."
+
+#~ msgid ""
+#~ "This setting may be overridden by setting the GCL_ANSI environment "
+#~ "variable to any non-empty string for the ANSI build, and to the empty "
+#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently "
+#~ "enforced build flavor will be reported in the initial startup banner."
+#~ msgstr ""
+#~ "Vẫn còn có thể ghi đè lên thiết lập này bằng cách đặt biến môi trường "
+#~ "« GCL_ANSI » thành bắt cứ chuỗi không rỗng cho bản xây dựng ANSI, và cho "
+#~ "chuỗi rỗng cho bản xây dựng CLtL1, v.d. « GCL_ANSI=t gcl@EXT@ ». Kiểu bản "
+#~ "xây dựng hiện thời được chọn sẽ được thông báo trên băng cờ khởi chạy đầu "
+#~ "tiên."
+
+#~ msgid "GCL has optional support for profiling via gprof."
+#~ msgstr "GCL có hỗ trợ tùy chọn để đo hiệu năng sử dụng thông qua gprof."
+
+#~ msgid ""
+#~ "Please see the documentation for si::gprof-start and si::gprof-quit for "
+#~ "details. As this build is slower than builds without gprof support, it is "
+#~ "not recommended for final production use."
+#~ msgstr ""
+#~ "Xem tài liệu hướng dẫn về « si::gprof-start » và « si::gprof-quit » để "
+#~ "tìm chi tiết. Vì bản xây dựng này chạy chậm hơn các bản xây dựng không hỗ "
+#~ "trợ gprof, không khuyên bạn sử dụng nó trong trường hợp sản xuất cuối "
+#~ "cùng."
+
+#~ msgid ""
+#~ "Set the GCL_PROF environment variable to the empty string for more "
+#~ "optimized builds, or any non-empty string for profiling support; e.g. "
+#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in "
+#~ "the initial startup banner."
+#~ msgstr ""
+#~ "Đặt biến môi trường « GCL_PROF » thành chuỗi rỗng cho các bản xây dựng "
+#~ "tối ưu hơn, hoặc cho bất cứ chuỗi không rỗng nào để hỗ trợ chức năng đo "
+#~ "hiệu năng sử dụng, v.d. « GCL_PROF=t gcl@EXT@ ». Hiệu lực chức năng đo "
+#~ "hiệu năng sử dụng thì nó được thông báo trên băng cờ khởi chạy đầu tiên."
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..c69d933
--- /dev/null
@@ -0,0 +1,210 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper. 
+# GNU copyright 1997 by Joey Hess.
+# GNU copyright 2024 Camm Maguire
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode. 
+#export DH_VERBOSE=1
+
+#export GCL_MEM_MULTIPLE=0.1
+
+export FORCE_SOURCE_DATE=1
+export FORCE_TEXLIVE_BUILD=1
+export SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+NUMJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+endif
+ifneq (,$(NUMJOBS))
+MAKEFLAGS+=-j $(NUMJOBS) -O
+GCL_MULTIPROCESS_MEMORY_POOL?=$(shell pwd)
+export GCL_MULTIPROCESS_MEMORY_POOL
+endif
+
+# This is the debhelper compatability version to use.
+ARCHT:=$(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+MCC?=gcc
+# ifeq ($(ARCHT),alpha)
+# MCC:=gcc-4.6
+# endif
+
+CFLAGS_APPEND?=
+ifeq ($(ARCHT),m68k) #gcc bug 20260316 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124569
+CFLAGS_APPEND:=$(CFLAGS_APPEND) -fno-auto-inc-dec
+endif
+
+#ifeq ($(ARCHT),ppc64)
+#CFLAGS_APPEND:=$(CFLAGS_APPEND) -O1
+#endif
+
+DEBUG?=
+#ifeq ($(ARCHT),hppa)
+#DEBUG=--enable-debug
+#endif
+
+VERS=$(shell echo $$(cat majvers).$$(cat minvers))
+EXT=$(shell echo $(VERS) | sed 's,\([0-9]\)\.\([0-9]\)\..*,\1\2,')
+
+debian/elpa-gcl$(EXT).elpa: debian/gcl$(EXT)-pkg.el
+       find elisp -name "*.el" >$@
+#      echo debian/gcl$(EXT).el >> debian/elpa-gcl$(EXT).elpa
+       echo debian/gcl$(EXT)-pkg.el >> debian/elpa-gcl$(EXT).elpa
+       echo debian/debian-autoloads.el >> debian/elpa-gcl$(EXT).elpa
+
+VR:=$(shell awk '{if (i) next;i=1;a=$$2;gsub("[()]","",a);split(a,A,"-");print A[1];}' debian/changelog)
+
+debian/gcl$(EXT)-pkg.el: debian/gcl-pkg.el.in
+       cat $< | sed "s,@VR@,$$(echo $(VR) | sed 's,[a-zA-Z]*,,g'),g" | sed "s,@EXT@,$(EXT),g" > $@
+
+
+configure-stamp:
+
+       dh_testdir
+
+       dh_autoreconf
+
+       eval `dpkg-buildflags --export=sh` && \
+       CC=$(MCC) CFLAGS="$$CFLAGS $(CFLAGS_APPEND)" ./configure \
+               --host=$$(dpkg-architecture -qDEB_HOST_GNU_TYPE) \
+               \
+               $(DEBUG) \
+               --prefix=/usr
+
+       touch $@
+
+build-stamp: configure-stamp
+       dh_testdir
+       $(MAKE) $(MAKEFLAGS)
+       $(MAKE) $(MAKEFLAGS) check
+       touch $@
+
+build: build-arch build-indep
+build-arch: build-stamp
+build-indep: #build-stamp
+       touch $@
+
+DOC_STUBS=gcl$(EXT) gcl$(EXT)-si gcl$(EXT)-tk gcl$(EXT)-dwdoc
+DOC_FILES=$(addsuffix  .info,$(DOC_STUBS))
+DOC_FILES+=$(addsuffix .dvi,$(DOC_STUBS))
+DOC_FILES+=$(addsuffix .pdf,$(DOC_STUBS))
+DOC_FILES+=$(addsuffix .html,$(DOC_STUBS))
+DOC_FFILES=$(addprefix info/,$(DOC_FILES))
+EXT_TARGS=$(DOC_FFILES) man/man1/gcl$(EXT).1 bin/gcl$(EXT)
+
+install-stamp: build-stamp
+       dh_testdir
+       dh_testroot
+       dh_prep
+       $(MAKE) $(MAKEFLAGS) install-all DESTDIR=$$(pwd)/debian/tmp
+       $(MAKE) $(MAKEFLAGS) $(EXT_TARGS)
+       for i in $(EXT_TARGS); do \
+               for j in $$i*; do \
+                       if [ -d $$j ] ; then l=d ; r=-r ; else l=f ; fi ; \
+                       k=$$(find debian/tmp -type $$l -name $$(echo $$(basename $$j) | sed 's,$(EXT),,g')); \
+                       [ "$$k" = "" ] || cp $$r $$j $$(dirname $$k) ; \
+                       echo $$i $$j $$k; \
+                       [ "$$k" = "" ] || chmod $$(dirname $$k)/$$(basename $$j) --reference=$$k ; \
+                       [ "$$k" = "" ] || rm $$r $$k ; \
+               done ; \
+       done
+       mv debian/tmp/usr/share/doc/gcl debian/tmp/usr/share/doc/gcl$(EXT)
+       touch $@
+
+INS:=$(shell for i in `find debian -name "in.*"` ; do \
+               echo $$i | sed 's,in.,,1' ; \
+               done |\
+            sed "s,\([^x]gcl\),\1$(EXT),g")
+
+gcl$(EXT)% : in.gcl%
+       cat $< | sed -e 's,@EXT@,$(EXT),g' -e 's,@VERS@,$(VERS),g' >$@
+
+debian/po/POTFILES.in: debian/po/in.POTFILES.in
+       cat $< | sed -e 's,@EXT@,$(EXT),g' -e 's,@VERS@,$(VERS),g' >$@
+
+debian/control: debian/control_$(EXT)
+       cp $< $@
+
+install: DH_OPTIONS:=
+install: install-stamp debian/control $(INS)
+       dh_installdirs
+       dh_install
+
+clean: debian/control debian/gcl$(EXT).templates debian/po/POTFILES.in
+       dh_testdir
+       dh_testroot
+       debconf-updatepo
+
+       ! [ -e Makefile ] || $(MAKE) $(MAKEFLAGS) distclean
+
+       dh_autoreconf_clean
+       dh_clean
+
+       for i in $(INS); do echo $^ | grep -q $$i || rm -rf $$i ; done
+       rm -rf debian/substvars debian.upstream
+       rm -rf *stamp build-indep config.log
+       rm -f  debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el
+       rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool
+
+debian-clean: debian/control debian/gcl$(EXT).templates debian/po/POTFILES.in
+       dh_testdir
+       dh_testroot
+       debconf-updatepo
+
+       dh_clean
+
+       for i in $(INS); do echo $^ | grep -q $$i || rm -rf $$i ; done
+       rm -rf debian/substvars debian.upstream
+       rm -rf *stamp build-indep config.log
+       rm -f  debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el
+       rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool
+
+
+
+# Build architecture-independent files here.
+# Pass -i to all debhelper commands in this target to reduce clutter.
+binary-indep: DH_OPTIONS:=-i
+binary-indep: build install debian/elpa-gcl$(EXT).elpa
+       dh_testdir
+       dh_testroot
+       dh_elpa
+       dh_installdocs
+       dh_installinfo
+       dh_installchangelogs ChangeLog
+       dh_link
+       dh_compress 
+       dh_fixperms 
+       dh_installdeb 
+       dh_gencontrol 
+       dh_md5sums 
+       dh_builddeb 
+
+binary-arch: DH_OPTIONS=-a
+binary-arch: build install #debian/substvars
+       dh_testdir 
+       dh_testroot 
+       dh_installdocs
+       dh_installdebconf 
+       sed -i -e 's,@EXT@,$(EXT),g' debian/gcl$(EXT)/DEBIAN/templates
+       dh_installchangelogs ChangeLog 
+       dh_strip  -Xlibgcl -Xlibansi_gcl -Xlibgcl_gprof -Xlibansi_gcl_gprof
+       dh_lintian 
+       dh_link 
+       dh_compress 
+       dh_fixperms 
+       dh_installdeb 
+       dh_shlibdeps 
+       dh_gencontrol  -u"-Vgcc=$(MCC)"
+       dh_md5sums 
+       dh_builddeb 
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
+.PRECIOUS: configure-trad-stamp configure-ansi-stamp configure-gprof-stamp configure-ansi-gprof-stamp
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
new file mode 100644 (file)
index 0000000..fc2f5b8
--- /dev/null
@@ -0,0 +1,6 @@
+info/gcl.pdf
+info/gcl-si.pdf
+info/gcl-tk.pdf
+xgcl-2/dwdoc.pdf
+info/gcl-si.info-2
+unixport/raw_pre_gcl
diff --git a/debian/texi.awk b/debian/texi.awk
new file mode 100755 (executable)
index 0000000..ccf9cdb
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/awk -f
+
+/^@defun/ {
+  a=split($0,A,"(");
+  b=split($0,B,")");
+  if (a==b) 
+    print ; 
+  else {
+    i=1;
+    c=$0;
+  }
+  next;
+} 
+{
+  if (i) {
+    sub("^ *","");
+    c=c " " $0;
+    a=split(c,A,"(");
+    b=split(c,B,")");
+    if (a==b) {
+      print c;
+      c="";
+      i=0;
+    }
+  } else 
+    print;
+}
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644 (file)
index 0000000..763a447
--- /dev/null
@@ -0,0 +1,13 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEY72GEhYJKwYBBAHaRw8BAQdA0hMaElCclwaCCulgX4m8rDdHFFQvYsZlh01C
+P5LGsOG0JUNhbW0gTWFndWlyZSA8Y2FtbUBtYWd1aXJlZmFtaWx5Lm9yZz6IjwQT
+FggAOBYhBGp0ZZ8fIxkel/m2XhrylJS+USuuBQJjvYYSAhsDBQsJCAcDBRUKCQgL
+BRYCAwEAAh4BAheAAAoJEBrylJS+USuub7AA+MkuPTCpVNVEQCwBTeiG8o3haoss
+t5527jQZtAO4+zoBAL0VaTA+KFzVgWHEDoAybH2TC0DMnf75glwTmWg+PgoNuDgE
+Y72GEhIKKwYBBAGXVQEFAQEHQC+wtP2/fnklVYfh7sP7KpkzLgFyOCNSMFY5mKjB
+XfI5AwEIB4h4BBgWCAAgFiEEanRlnx8jGR6X+bZeGvKUlL5RK64FAmO9hhICGwwA
+CgkQGvKUlL5RK64vIgD+LaehRHfaNaJEe4H9lbq1ocu11YABw66a5XsKvU6gXi4A
+/A1jbf1vLz7JrvZQLAPQ/n8+E9ePART7zAoiqDWIEXAO
+=bH2+
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..d2c16eb
--- /dev/null
@@ -0,0 +1,2 @@
+version=4
+options=pasv,pgpsigurlmangle=s/$/.sig/ http://ftp.gnu.org/pub/gnu/gcl/ gcl-([0-9.]*).tar.gz    debian  uupdate
diff --git a/info/gcl-si.info-2 b/info/gcl-si.info-2
new file mode 100644 (file)
index 0000000..9367638
Binary files /dev/null and b/info/gcl-si.info-2 differ